Fangen Einreichen, bevor HTML5-Validierung
Gibt es eine Möglichkeit, zu fangen, eine form submit
Aktion vor der HTML5-Validierung Schritte?
Dies ist was ich versucht habe:
HTML
<form method='post' >
<fieldset>
<input type='email' name='foo' required />
<input type='submit' />
</fieldset>
</form>
jQuery
$('form').submit(function() {
$('fieldset').addStyle('error');
return false;
})
Aber die submit
wird nur dann ausgelöst, wenn die HTML5-Validierung geht.
- Brauchen Sie die HTML5-Validierung? Wenn nicht, können Sie immer deaktivieren, es mit
novalidate
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
NÖ, der HTML5-Validierung geschieht, bevor irgendein submit-Ereignis, die in allen Browsern, daher ist es nicht möglich, andere als die änderung der Ereignis-Typ, wie ein Klick auf den button :
GEIGE
function(e)
und innerhalb der Funktion in der ersten Zeilee.preventDefault;
sonst wird das Formular Absenden. Dann, wenn Sie bereit sind, fügen Sie am Ende der Funktion$('form').submit()
Jquery verwenden Sie zum deaktivieren der überprüfung auf die form, wenn die Seite zuerst geladen wird, damit können Sie verhindern, dass jegliche Prüfung aus, die vor Ihrem
onsubmit
- handler ausgeführt wurde:und dann am Ende Ihrer
onsubmit
Funktion, führen Sie manuell die HTML5-Validierung auf die einzelnen Felder per javascript (mitcheckValidity()
)Ändert sich der button von
einer regulären Taste
Und nach, dass nur capture klicken Sie auf die Veranstaltung und machen das legt sich
Können Sie abfangen der
"invalid"
Ereignis für das element gelten, der Klasse und dannreturn false
zu stornierenhttps://developer.mozilla.org/en-US/docs/Web/Events/invalid
Auch ich habe eine Fokus-und keydown-Ereignis zu entfernen. Klasse.
JS:
CSS:
HTML:
Beachten Sie, dass es möglicherweise die gleichen Einschränkungen wie
HTMLFormElement.reportValidity()
https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/reportValidity