我正在使用 asp MVC3 和 MVC Unobtrusive 验证构建一个表单。我注意到我的一些 jquery 函数在验证失败后不再运行。例如,我在文本框上有一个日期选择器,在文本框上有一个电话号码格式掩码,这两者都在第一次通过时完美运行,但如果表单验证失败,它们不会“重新加载”。
所以,我正在寻找一种修改jquery的方法,这样它就会再次运行。这两个功能目前都“准备好文档”,我猜页面在验证失败后不会重新加载,这就是它们不起作用的原因。例如,这里是电话号码掩码:
$(document).ready(function () {
$("#PersonModel_PhoneNumber").mask("(999) 999-9999");
});
这是添加了东西的日期选择器:
$(document).ready(function () {
$("#PersonModel_DateofBirth").datepicker
({ dateFormat: 'mm/dd/yy',
changeMonth: true,
changeYear: true,
yearRange: '-100y:c+nn',
maxDate: '-1d',
onClose: function ageVerification() {
var value = document.getElementById('PersonModel_DateofBirth').value;
var birthDate = new Date(document.getElementById('PersonModel_DateofBirth').value);
var currDate = new Date();
var yearDifferential = currDate.getFullYear() - birthDate.getFullYear();
var totalMonths = (yearDifferential * 12) + (currDate.getMonth() - birthDate.getMonth());
if (value != "") {
if (currDate.getDate() < birthDate.getDate()) {
totalMonths--;
}
}
else {
window.alert("Please enter your date of birth");
}
var age = parseInt(totalMonths / 12);
$("#Age").val(age);
if (age < 18) {
window.alert("You must be 18 or older to use this application. ");
}
}
});
});
所以我很确定我需要某种方法来重新触发我设置为 document.ready 的所有 jquery 函数,也许更改为 onclick 或其他东西。请让我知道你的想法。