簡體   English   中英

8不小於或等於30?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM