Bei Verwendung eines Formulars mit vielen Texteingaben sendet WebKit/Safari/Google Chrome das Formular, wenn "Enter" in einem Eingabeelement gedrückt wird . Auch wenn es kein Submit-Eingabeelement gibt und kein onclick Handler registriert ist.Wie kann ich verhindern, dass der WebKit Browser ein Formular abschickt, wenn in einer Eingabe die Eingabetaste gedrückt wird
Siehe zum Beispiel dieses Beispielcode:
<html>
<body>
<form method="POST" action=".">
<ul>
<li><input type="text" name="foo" value="<?=rand()?>"/></li>
<li><input type="text" name="bar" value="<?=$_POST['foo']?>"/></li>
</ul>
</form>
</body>
</html>
Wenn Eingabe in eines der beiden Texteingabeelemente gedrückt wird, wird das Formular abgeschickt.
Da ich mein Formular in JavaScript mit asynchronen HTTP-Anforderungen handle, muss ich dieses Verhalten verhindern. Ich könnte einen benutzerdefinierten Handler für die keypressed Ereignis zu preventDefault und stopPropagation registrieren. Aber es scheint hässlich und ist nicht wirklich praktisch, wenn neue Texteingabeelemente dynamisch hinzugefügt werden.
Verdammt, war ich ein Minute zu langsam –