Submit textarea-Formular ohne submit-button mit der Enter-Taste drücken
Hintergrund:
Ich mache eine facebook Wand-alike-Seite, die viele Beiträge, und Sie sollten in der Lage sein zu kommentieren jeden post. Also in dieser Seite gibt es viele Formen (natürlich). Und ich brauche nur einen Einreichen.
Also ja, ich fand Antworten auf diese Frage , aber keiner von Ihnen arbeiten, so Frage hier:
Bekam ich ein Formular wie dieses:
<form enctype="text/plain" action="submitcomment.php" method="post" target="output_frame" id="comment<?php echo $prepare_data['post_id']; ?>">
<textarea name="comment" id="comment" onkeypress="return submitViaEnter(event)" value="" autocomplete="off"></textarea>
<input type="hidden" name="hiddenid" id="hiddenid" value="<?php echo $prepare_data['post_id']; ?>" />
</form>
und meine JavaScript-Funktion sieht wie folgt aus:
function submitViaEnter(evt) {
evt = (evt) ? evt : event;
var target = (evt.target) ? evt.target : evt.srcElement;
var form = target.form;
var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
if (charCode == 13) {
document.forms[this.form.id].submit();
alert("sent!");
return false;
}
return true;
}
Wenn ich eine textbox, funktioniert es, aber wenn ich die textarea, es funktioniert nicht. Versucht enter zu drücken, tut sich nichts.
- funktioniert einwandfrei in einem Geige. Sie sollten nie mit der
charCode
- Eigenschaft, finden Sie diese Frage. - Vielleicht gibt es etwas falsch mit der "Dokument.Formen[dies.form.id].submit();" -Teil? Weil es nicht funktioniert-für mich zumindest :/
- wahrscheinlich können Sie ersetzen Sie alle, die mit
target.form.submit()
, btw - Es funktioniert jetzt! Danke!
- Sie sollten akzeptieren, eine der Antworten. wenn keiner von Ihnen geholfen, Ihren eigenen Beitrag beantworten mit dem, was Sie Tat, es zu beheben und zu akzeptieren, Ihre eigene Antwort.
- Ihrem Kommentar fest, wie kann ich es anwenden, da eine Antwort? 😛 Auch kann ich nicht posten, meine Antwort in 8 Stunden, da ich nicht genug ansehen !
- ich habe meine Kommentare in eine Antwort, fühlen Sie sich frei, es zu akzeptieren, wenn es hilft.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser code flow funktioniert gut in einem jsfiddle test. Beachten Sie, dass sollten Sie nicht verwenden
e.charCode
alse.keyCode
(IE) unde.which
(alles andere) reichen. Sehen diese Frage.Auch der code für das finden der form ist zu Komplex und nicht notwendig, dieses zu ändern:
Zu diesem:
Verwendung der jQuery-und bind-Funktion-Ereignis per javascript:
Seien Sie vorsichtig mit dieser, obwohl - es wird reichen auf jede neue Zeile. Menschen neigen dazu, zu schreiben, mehrzeilige Texte in Texteingabefelder, so könnte dieses Verhalten unerwartet
Haben Ihre Texteingabefelder verschachtelt in Ihren Formen, nach wie vor, aber geben Sie Ihnen Klassennamen statt IDS. So, das jquery-kann auf alle Texteingabefelder im DOM mit, dass insbesondere classname.
Dann passen Jura-code wie so und es sollte sich auf die richtige form, dass das textfield ist Leben in.