如何通过datepicker更改事件

时间:2013-09-09 15:45:43

标签: javascript jquery datepicker

我正在使用Html.TextBoxFor帮助器检查jquery中使用datepicker控件输入的日期:

<%=Html.TextBoxFor(c => Model.mydate, new { @class = "datepicker", maxlength = 10, @onBlur = "chkDate"})%>

文本框的日期选择器掩码似乎是MM / DD / YYYY。因此,我的脚本检查下划线并显示错误。如果用户igonores datepicker并尝试徒手输入日期,但是如果使用了datepicker则不行。选择日期时,传递给我的脚本的值仍然是下划线而没有值。这是我的剧本:

 <script type="text/javascript">

    $(document).on("blur", "input[name=mydate]",
    function chkDate() {


        var len = $("input[name=mydate]").val().length;
        var date = $("input[name=mydate]").val();

        var month = date.slice(0, 2);
        var day = date.slice(3, 5);
        var year = date.slice(6, 10);
        alert("chkBirthday " + month);

        if (month == '__') {
            document.getElementById("MainContent_ErrorMessage").visibility = 'visible';
            document.getElementById("MainContent_ErrorMessage").innerHTML = 'No date has been entered.  Please enter a date';
        }

    });

与datepicker关联的事件onChange。这是我应该使用的吗?如果是这样,我如何在我的帮助器中指定它以及我需要进行哪些脚本更改?

2 个答案:

答案 0 :(得分:0)

试试这个,

$(document).on("change", "input[name=mydate]",function (){
     var len = $(this).val().length;
     var date = $(this).val();

     var month = date.slice(0, 2);
     var day = date.slice(3, 5);
     var year = date.slice(6, 10);
     alert("chkBirthday " + month);

     if (month == '__') {
         document.getElementById("MainContent_ErrorMessage").visibility = 'visible';
         document.getElementById("MainContent_ErrorMessage").innerHTML = 'No date has been entered.  Please enter a date';
     }    
});

答案 1 :(得分:0)

假设您正在使用流行的JQuery UI的Datepicker,奇怪的是它们没有授权事件,而是可以处理此事件的回调。请参阅onSelect或onClose。