2 Stimmen

Selektive JQuery-Validierung

Ich benutze JQuery-Validierung um ein bestimmtes Textfeld in meinem Formular zu validieren. Das Textfeld ist ein optionales website Abschnitt, der die url Validierungsmethode. Dies funktioniert gut und validiert entsprechend. Ich möchte gerne http:// in das Textfeld ein, damit der Benutzer sie nicht eintippen muss. Wenn der Text jedoch festgelegt ist, wird der Validator "aktiv" und verhindert, dass irgendetwas im Formular übermittelt wird, bis entweder die http:// manuell entfernt wird, oder eine gültige Website eingegeben wird. Gibt es eine Möglichkeit, Text in das Textfeld einzugeben, ohne dass der Validator mit der Validierung beginnt?

Ich habe versucht, die

$("[id$='tbWebsite']").val("http://");

kurz bevor ich anrufe form.validate() aber es funktioniert nicht (d. h. es wird immer noch geprüft).

Ich habe noch nie verwendet JQuery Validator vor, so hoffentlich gibt es eine Lösung für dieses, dass ich vermisse!

Eine alternative Lösung für meinen Fall könnte darin bestehen, den Validator zu aktivieren, wenn eine bestimmte Schaltfläche gedrückt wird (anstelle einer beliebigen Schaltfläche auf dem Formular). Wäre das möglich?

Danke

Update

Ich habe dies der Textbox-Deklaration hinzugefügt:

onfocus="if(this.value == 'http://' || this.value == '')this.value='http://'" onblur="if(this.value == 'http://')this.value=''" 

Damit ist das Hauptproblem gelöst. Wenn der Benutzer jedoch in das Textfeld klickt und dann wegklickt, wird die Fehlermeldung immer noch angezeigt (auch wenn sie nicht erzwungen wird und das Formular abgeschickt werden kann). Was wäre der beste Weg, um sicherzustellen, dass die Fehlermeldung nicht angezeigt wird, wenn der Wert "http://" ist?

1voto

Matti Virkkunen Punkte 61148

Setzen Sie das Präfix nur ein, wenn der Benutzer die leer Textfeld, und entfernen Sie es, wenn das Textfeld den Fokus verliert mit nur die darin enthaltene Vorsilbe

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