我正在使用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或者其他东西。请让我知道你的想法。
答案 0 :(得分:0)
我找到了答案,即添加onclick事件。例如,使用datepicker,我将整个事物放在var中,然后在.click中单独调用它。这是datepicker:
var verifiedDate = $("#PersonModel_DateofBirth").datepicker
({ dateFormat: 'mm/dd/yy',
changeMonth: true,
changeYear: true,
yearRange: '-100y:c+nn',
maxDate: '-1d',
onClose: function ageVerification() {
var value = $('#PersonModel_DateofBirth').val();
var birthDate = new Date($('#PersonModel_DateofBirth').val());
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. Please use " +
"the Student Volunteer application, found here: " +
"http://www.salkeiz.k12.or.us/qam/student-criminal-history-check-packet-english");
}
}
});
$("#PersonModel_DateofBirth").click(function () {
verifiedDate.datepicker("show");
});