1

我的 ASP.Net MVC 4 应用程序的页面上有一个日期输入字段。当用户更改此日期时,我需要运行一些客户端验证。

生成该字段的代码是:

@Html.DatePickerFor(x => x.EndDate)

在与上述代码相同的 cshtml 页面的底部,我还有以下内容:

<script type="text/javascript">
    MyValidation.FormValidator.initialize($('#EndDate'));
</script>

和 MyValidation.FormValidator.js 文件:

MyValidation.FormValidator = (function () {
    return {   
        initialize: function (endDateInput) {
            endDateInput.bind('input', function () {
                alert("hit");
                SomeValidationFunction();
            });
        }
     };
})();

我尝试了很多不同的方法来编写

endDateInput.bind('input', function () {...}

部分,以便它正确触发,但我的尝试都没有奏效。例如,我目前的工作是仅在用户输入日期时才导致验证逻辑运行;如果用户从弹出日历中选择新日期,则不会触发验证。

我对 Web 开发非常陌生,所以我认为我在这里做的事情根本上是错误的,因为这似乎不应该是一个难题。

4

2 回答 2

0

你可能已经解决了这个问题,但我会把它写成

<script type="text/javascript">
    $(document).ready(function(){
        $('#EndDate').change(function(){
            SomeValidationFunction();
        });
    });
</script>
于 2013-10-11T19:00:05.053 回答
0

以下代码正在侦听未聚焦或blur日期。即使有blur事件,jquery 也会检查是否存在有效日期。如果有,jQuery 将运行代码。

$('#choose-date').on('blur',function(){ 
    if($(this).val()){
        console.log('changed date');
        //YOUR CODE HERE
    }
}); 
于 2015-12-08T18:00:35.357 回答