Der Code, den ich bisher habe, lautet also:
<fieldset id="LinkList">
<input type="text" id="addLinks" name="addLinks" value="http://">
<input type="button" id="linkadd" name="linkadd" value="add">
</fieldset>
Es ist nicht in a <form>
und ist genauso wie es in a ist <div>
. Wenn ich jedoch etwas in die textbox
aufgerufenen "addLinks" eingebe, möchte ich, dass der Benutzer die Eingabetaste drücken und das "linkadd" auslösen kann, das button
dann eine JavaScript-Funktion ausführt .
Wie kann ich das machen?
Vielen Dank
Bearbeiten: Ich habe diesen Code gefunden, aber er scheint nicht zu funktionieren.
$("#addLinks").keyup(function(event){
if(event.keyCode == 13){
$("#linkadd").click();
}
});
keypress
und suchen nache.charCode==13
(Enter-Taste).keypress
oderkeydown
in dieser Antwort erwähnt, ist der richtige Weg.Antworten:
quelle
Es ist …… 2020. Und ich glaube, das gilt immer noch.
VERWENDE NICHT
keypress
keypress
Ereignis wird nicht ausgelöst , wenn der Benutzer drückt eine Taste , die keinen Charakter produzieren , wie Tab, Caps Lock, Delete, Backspace, Escape, links und rechts Shift, Funktionstasten ( F1- F12).Es wurde veraltet.
VERWENDE NICHT
KeyboardEvent.keyCode
Was soll ich dann verwenden? (Die gute Praxis)
quelle
if (event.key == "Enter") { document.querySelector("#linkadd").click(); }
?.key
nicht in allen Browsern unterstützt wird: caniuse.com/#feat=keyboardevent-key - Etwa 10% der Benutzer verwenden Browser, die dies nicht unterstützen.Es gibt eine js-freie Lösung.
Stellen Sie
type=submit
die Schaltfläche ein, die Sie als Standard festlegen möchten, undtype=button
andere Schaltflächen. Im folgenden Formular können Sie nun in einem beliebigen Eingabefeld die EingabetasteRender
drücken , und die Schaltfläche funktioniert (obwohl es sich um die zweite Schaltfläche im Formular handelt).Beispiel:
Getestet in FF24 und Chrome 35 (
formaction
ist eine HTML5-Funktion, abertype
nicht).quelle
button
durch asubmit
submit
Handler des Formulars, nicht an denclick
Handler der SchaltflächeDurch Drücken der Eingabetaste im Feld wird das Senden des Formulars ausgelöst, und der Submit-Handler wird ausgelöst.
quelle
Sie können Ihrer Eingabe einen Ereignishandler wie folgt hinzufügen:
quelle
Dies funktioniert, wenn der Eingabetyp = "button" durch den Eingabetyp = "submit" für die Standardschaltfläche ersetzt wird, die ausgelöst werden muss.
quelle
Fügen Sie zunächst die jquery-Bibliotheksdatei jquery hinzu und rufen Sie sie in Ihrem HTML-Kopf auf.
und dann JQuery-basierten Code verwenden ...
quelle
Dies sollte es tun, ich verwende jQuery, Sie können einfaches Javascript schreiben.
Ersetzen Sie
sendMessage()
durch Ihre Funktionalität.quelle
Basierend auf einigen früheren Antworten habe ich Folgendes gefunden:
Schauen Sie sich die Geige an
BEARBEITEN: Wenn Sie keine zusätzlichen HTML-Elemente hinzufügen möchten, können Sie dies nur mit JS tun:
quelle
Ich fand w3schools.com Howto, ihre Try-Me-Seite ist auf der folgenden.
https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_trigger_button_enter
Dies funktionierte in meinem normalen Browser, aber nicht in meiner PHP-App, die den eingebauten PHP-Browser verwendet.
Nachdem ich ein bisschen gespielt hatte, kam ich auf die folgende reine JavaScript-Alternative, die für meine Situation funktioniert und in jeder anderen Situation funktionieren sollte:
HTML Drücken Sie die Eingabetaste im Textfeld, um die Schaltfläche zu aktivieren.
quelle
quelle
Ich benutze einen Kendo-Button. Das hat bei mir funktioniert.
quelle