2 Stimmen

Überschreiben einer Funktion innerhalb des Jquery-Validierungs-Plugins

Ich verwende die jquery form validation plugin um ein Langformular zu validieren. Wenn ein Benutzer das Formular mit mehreren Feldern absendet, die nicht validiert werden können, kehrt der Cursor zum letzten Feld zurück, das nicht bestanden wurde. Stattdessen möchte ich, dass der Cursor zum ersten Feld des Formulars zurückkehrt, das die Überprüfung nicht bestanden hat. Anstatt das Plugin zu ändern, möchte ich focusInvalid überschreiben, das in "prototype" verschachtelt ist: {...}":

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
        }
    }
},

Ich habe versucht, meine eigene Version von focusInvalid innerhalb der folgenden hinzuzufügen, aber ich habe nicht in der Lage gewesen, um das zu arbeiten:

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

Haben Sie einen Tipp?

2voto

MitMaro Punkte 5277

Sie können die Auswahl der ersten ungültigen Eingabe mit der Option focusInvalid Option. Sie können dann die Option invalidHandler um eine benutzerdefinierte Funktion festzulegen, die das erste Element in Ihrem Formular auswählt. Die invalidHandler ist die Funktion, die das Plugin aufruft, wenn ein ungültiges Formular übermittelt wird.

Beispiel unten:

$("form#user-register").validate({
     invalidHandler: function(form, validator){
         $(validator.invalidElements()[0]).focus();
     },
     focusInvalid:false
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X