Wie fokussiert man ungültige Felder mit jQuery validate?

Lesezeit: 2 Minuten

Es gibt focusInvalid Option, die ist true standardmäßig. Aber es funktioniert nur, wenn das Formular gesendet wird. Wenn ich das Formular mit bestätige valid Methode, dann funktioniert es nicht. Die Frage ist also, wie man wann ein ungültiges Feld fokussiert valid wird genutzt?

Bitte sehen diese demo um den Unterschied zu sehen. Einfach dort Knöpfe drücken.

Mit dem invalidHandler Sie können den Fokus auf das erste Element setzen, das fehlschlägt:

$("#form").validate({
    onfocusout: false,
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {                    
            validator.errorList[0].element.focus();
        }
    } 
});

  • jQuery validate wählt das erste ungültige Element aus oder das letzte fokussierte ungültige Element. Ihr Code ist der einzige, den ich gefunden habe, der diesem Ärger ausweicht und immer den ersten auswählt. Vielen Dank!

    – Preston Badeer

    26. März 2013 um 14:33 Uhr


  • Ja, es gibt eine Menge Snafus, die sich auf jquery.validates Focus Handling auswirken. An sich funktioniert es wie ein Top, aber wenn Sie anfangen, responsive Designs und mehr Jquery-Skripte hinzuzufügen, kann der Fokus etwas abfallen. Schönes Skript, danke fürs Posten.

    – Isaac-Wetter

    12. März 2014 um 21:46 Uhr

  • +1 für diese Option, konnte sie nirgendwo finden. Übrigens, ein kleiner Tipp: auch tun validator.lastActive = validator.errorList[0].element; um zu vermeiden, dass ich mich auf zwei elemente konzentriere… das war etwas, womit ich konfrontiert war end date Feld als zuletzt aktiv und start date Als erstes ungültiges Feld tauchten Datumsauswahlen auf beiden Feldern auf (natürlich waren beide ungültig). Prost!!

    – Fr0zenFyr

    1. April 2017 um 7:29 Uhr


Zunächst müssen Sie Ihren Validator in einer Variablen speichern, damit Sie ihn im Click-Handler verwenden können:

var validator = $("#test-form").validate({ /* settings */ });

Dann können Sie im Validate-Handler manuell aufrufen focusInvalid Funktion aus der validator Variable:

  $("#validate").click(function() {
        if ($("#test-form").valid()) 
              alert("Valid!");
        else
              validator.focusInvalid();

        return false;
  });

Beispiel

1284070cookie-checkWie fokussiert man ungültige Felder mit jQuery validate?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy