переопределение функции в плагине проверки jquery - PullRequest
2 голосов
/ 02 августа 2009

Я использую плагин проверки формы jquery для проверки полной формы. Если пользователь отправляет форму с несколькими полями, которые не могут быть проверены, курсор возвращается к последнему не пропущенному полю. Вместо этого я хочу, чтобы курсор возвращался к первому полю в форме, которая не прошла проверку. Вместо того, чтобы изменять плагин, я хотел бы переопределить focusInvalid, который вложен в «prototype: {...}»:

focusInvalid: function() {
    if( this.settings.focusInvalid ) {
        try {
            $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus();
        } catch(e) {
            // ignore IE throwing errors when focusing hidden elements
        }
    }
},

Я пытался добавить свою собственную версию focusInvalid в следующем, но я не смог заставить это работать:

$("form#user-register").validate({. . .});

Есть указатели?

1 Ответ

2 голосов
/ 02 августа 2009

Вы можете отключить выбор первого неверного входа с помощью опции focusInvalid. Затем вы можете использовать опцию invalidHandler, чтобы установить пользовательскую функцию, которая выбирает первый элемент в вашей форме. Опция invalidHandler - это функция, которую плагин вызывает при отправке неверной формы.

Пример ниже:

$("form#user-register").validate({
     invalidHandler: function(form, validator){
         $(validator.invalidElements()[0]).focus();
     },
     focusInvalid:false
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...