asp MVC3 と MVC 控えめな検証を使用してフォームを作成しています。検証が失敗した後、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 などに変更します。考えを教えてください。