0

我在文本框上应用了 ajax 日历并对其选择应用了以下检查

 function checkDate(sender, args) {
        if (sender._selectedDate > new Date()) {
            alert("You cannot select a day future than today!");
            sender._selectedDate = new Date();
            // set the date back to the current date
            sender._textbox.set_Value(sender._selectedDate.format(sender._format))
        }
    }

我的html代码是:

 <asp:TextBox ID="txtDOB" Width="140px" MaxLength="50" runat="server"></asp:TextBox>
                            <ajaxctrl:calendarextender onclientdateselectionchanged="checkDate" id="cale_txtDOB"
                                runat="server" targetcontrolid="txtDOB" format="MM/dd/yyyy" cssclass="cal_Theme1">
                            </ajaxctrl:calendarextender>

它工作正常,但如果我手动输入日期,那么这不起作用,我怎样才能让两种方式都为我工作。

意味着如果用户手动输入它,那么它也会检查日期,当用户从日历中选择它时,它也会验证日期。

4

2 回答 2

1

这是您修改后的 javascript 函数:

    function checkDate(sender, args) {
        //alert(sender._selectedDate > new Date());
        if (sender._selectedDate > new Date()) {
            alert("You cannot select a day future than today!");
            sender._selectedDate = new Date();
            // set the date back to the current date
            sender._textbox.set_Value(sender._selectedDate.format(sender._format))
            return false;
        }
    }

这是一个新的 javascript 函数,只需将其添加到您的函数下方:

    function checkDate1(txt) {
        if (new Date(txt.value) > new Date()) {
            alert("You cannot select a day future than today!");
            return false;
        }
    }

现在转到页面的 Page_Load 事件,并添加以下代码行:

    this.txt.Attributes.Add("onblur", "checkDate1(this);");

您可以更改这些函数名称,因为我刚刚为您写了这个有点匆忙。也没有太多时间来测试它。如果您有任何问题,请告诉我。

于 2012-11-20T15:13:39.687 回答
0

您是否尝试过jQuery Change方法?

$('#textBoxName').change( function() {
  if ($(this).val() > new Date()) {
     alert("You cannot select a day future than today!");
       var today=new Date();
       $('#textBoxName').val(today);
  }
});
于 2012-11-20T15:30:56.663 回答