好吧,我有一个RangeValidator
:
<asp:RangeValidator ID="DateRangeValidator" runat="server" ControlToValidate="DateRange"
ErrorMessage="The date range must be at least 1 day, not more than 30, and neither date can be greater than today's date."
EnableClientScript="true" MinimumValue="1" MaximumValue="30" CssClass="errortext span9 offset2"
Display="Dynamic" />
如您所见,最小值为1,最大值为30。
那是在验证一个隐藏的字段(由于我正在测试,因此可见):
<asp:TextBox ID="DateRange" runat="server" ClientIDMode="Static" />
正如您所看到的,我将客户端ID设置为静态,因此它可以很好地找到控件。
当两个日期之一更改时,此JavaScript方法将填充该隐藏字段:
$('.datepicker').change(function () {
var startDate = new Date($('#StartDate').val());
var endDate = new Date($('#EndDate').val());
if (startDate > Date() || endDate > Date()) {
$('#DateRange').val(-1);
}
else {
var nDifference = endDate - startDate;
var one_day = 1000 * 60 * 60 * 24;
$('#DateRange').val(Math.round(nDifference / one_day) + 1);
}
Page_ClientValidate(null);
});
从设置正确的天数差异的 Angular 来看,此方法非常有效。
调用
Page_ClientValidate
时,我已对其进行调试,以确保验证程序按预期方式触发,并且确实如此,并且它具有我期望的值。选中最小值时,它将获取1 ...,然后将其与值8进行比较...将按预期进行评估... 8大于或等于1。但是,当检查最大值时,即使它获取最大值是30……将其与值8进行比较……表示8小于或等于30的表达式也将被评估为false。
我真的希望有人能在这里帮助我!
8个世界上不少于30个?
最佳答案
您在Type="Integer"
上缺少 RangeValidator
。