我的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 () {...}
部分以便正确触发,但我的尝试都没有奏效。例如,我目前的努力只是在用户输入日期时才导致验证逻辑运行;如果用户从弹出日历中选择一个新日期,则验证不会触发。
我对网络开发很陌生,所以我认为我在这里做了一些根本性的错误,因为这似乎不应该是一个难题。
答案 0 :(得分:0)
你可能已经解决了这个问题,但我会把它写成
<script type="text/javascript">
$(document).ready(function(){
$('#EndDate').change(function(){
SomeValidationFunction();
});
});
</script>
答案 1 :(得分:0)
以下代码正在侦听日期中的无焦点或blur
。即使有blur
事件,jquery也会检查是否存在有效日期。如果有,jQuery将运行代码。
$('#choose-date').on('blur',function(){
if($(this).val()){
console.log('changed date');
//YOUR CODE HERE
}
});