Как повторно запустить функции jquery после неудачной проверки

Я создаю форму, используя ненавязчивую проверку 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.  ");

                    }
                }
            });

        });

Поэтому я почти уверен, что мне нужен какой-то способ повторного запуска всех функций jquery, которые я установил для document.ready, возможно, изменить на onclick или что-то в этом роде. Пожалуйста, поделись своими мыслями.


person BattlFrog    schedule 29.01.2013    source источник


Ответы (1)


Я нашел ответы, которые заключались в том, чтобы добавить события onclick. Например, с помощью средства выбора даты я поместил все это в var, а затем вызвал его отдельно в .click. Вот датапикер:

   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");
        });
person BattlFrog    schedule 29.01.2013