[英]8 is not less than or equal to 30?
好吧,我有一個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);
});
從設置正確的天數差異的角度來看,這種方法是完美的。
當調用Page_ClientValidate
時,我調試它以確保驗證器按預期觸發,它是,並且它具有我期望的值。 當檢查到最小值時,它會抓取1 ...並且當它與值8進行比較時...它正在按預期進行評估... 8大於或等於1。
但是,當檢查最大值時,即使它最大值為30 ......當它與值8相比時......表示8小於或等於30的表達式被評估為假。
我真的希望有人可以幫助我!
這個世界上8個不少於30個?
您在RangeValidator
上缺少Type="Integer"
。
將Type="Integer"
添加到范圍驗證器
您需要在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"
Type="Integer" />
相關的MSDN文檔: http : //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basecomparevalidator.type.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.