Пользовательские методы jQuery Validator: Как использовать несколько форм на одной странице? - PullRequest
0 голосов
/ 13 ноября 2011

У меня есть форма, запрашивающая ввод данных пользователем для начальной и конечной длины, и она может повторяться на странице разное количество раз, в зависимости от того, сколько разделов пользователь хочет вставить. Я пытаюсь добавить некоторую проверку.Я добавил собственный метод валидатора в функцию, которую я вызываю onChange любого поля, чтобы проверить, что длина конца больше, чем начальная, и она работает.

Когда пользователь вызывает на странице вторую форму,метод ломается и перестает работать;кажется, что оно содержит любое сообщение об ошибке, которое оно имеет в данный момент, и независимо от того, что я изменяю, оно сохраняется, если я не выйду за границы диапазона, которые все еще проверяются правильно.

В теге input есть это в обоих полях: onchange="validateTheForm(this.form);"

Вот код в моем файле .js, я вызываю его в форме каждый раз при изменении ввода:

var validateTheForm = function(theForm) {
    $.validator.addMethod("endGreaterThanBegin", function(value, element) {
        return parseInt($('#endPoint').val(), 10) > parseInt($('#startPoint').val(), 10);
    }, "End Point Should be Greater than Start");

    $(theForm).validate({
        rules: {
            startPoint: {
                required: true,
                range: [0, 100]
            },
            endPoint: {
                required: true,
                range: [1, 100],
                endGreaterThanBegin: true
            }
        }
    });
    return true;
}

Я думал, что это может быть проблема с попыткой добавитьметод снова и снова, но это происходит каждый раз, когда я изменяю любое поле в первой форме и никогда не ломается.Мне интересно, связано ли это с установкой переменной, связанной с первой формой, когда метод создается, и никогда не обновляет их до новых форм.

1 Ответ

1 голос
/ 13 ноября 2011

Определите правила и примените валидатор один раз и используйте метод valid для проверки формы.

Демо - http://jsfiddle.net/2hA8M/17/

function validateTheForm(){
    $('#signupform').valid();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...