Ruft den Wert des Eingabetexts ab, wenn die Eingabetaste gedrückt wird

Lesezeit: 3 Minuten

Benutzer-Avatar
Benutzer2405469

Ich versuche das:

<input type="text" placeholder="some text" class="search" onkeydown="search()"/>
<input type="text" placeholder="some text" class="search" onkeydown="search()"/>

mit etwas Javascript, um zu prüfen, ob die Eingabetaste gedrückt ist:

function search() {
    if(event.keyCode == 13) {
        alert("should get the innerHTML or text value here");
    }
}

Das funktioniert im Moment gut, aber meine Frage, wie ich den Wert in das Textfeld bekomme, ich dachte daran, einen Verweis “this” an die Funktion zu übergeben, oder wenn sie IDs hätten, könnte ich IDs verwenden, aber dann tue ich es nicht Sehen Sie, wie ich unterscheiden könnte, welches getippt wurde, was mich wieder auf das gleiche Problem zurückbringt …

  • Du kannst passieren this und bekomme this.value für das aktuelle Ziel/Textfeld!

    – Dhaval Marthak

    8. Januar 2014 um 14:39 Uhr

  • “sollte das innerHTML bekommen Eingaben haben kein innerHTML …

    – escarello

    8. Januar 2014 um 14:40 Uhr


  • Ja, ich hätte es zuerst versuchen sollen, aber danke für die Bestätigung.

    – Benutzer2405469

    8. Januar 2014 um 14:42 Uhr

Benutzer-Avatar
brg

Versuche dies:

<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>  
<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>

JS-Code

function search(ele) {
    if(event.key === 'Enter') {
        alert(ele.value);        
    }
}

DEMO-Link

  • Zuerst dachte ich, es wäre ein Fehler drin, dann habe ich es versucht: Funktioniert perfekt und ist der beste Vanilly-Ansatz, den ich finden konnte. Danke.

    – Xan-Kun Clark-Davis

    7. Juli 2016 um 5:29 Uhr

  • Nur eine schnelle Änderung für jemanden, der dies zufällig findet, in HTML5 sollte es onkeypress statt onkeydown und event.keyCode == 13 für die Eingabetaste sein.

    – Hokhy Tann

    7. März 2018 um 15:38 Uhr


  • Außerdem sollte „search(this)“ in HTML5 „search(event)“ sein, von dem Sie „ele.keyCode === 13“ ablesen, um zu erfahren, ob die Eingabetaste gedrückt wurde. Schlüsselwort ‘this’ funktioniert nicht.

    – DocWeird

    11. Oktober 2019 um 13:04 Uhr

$("input").on("keydown",function search(e) {
    if(e.keyCode == 13) {
        alert($(this).val());
    }
});

jsFiddle-Beispiel: http://jsfiddle.net/NH8K2/1/

  • Ist es nicht die jQuery-Version? Aber ich schätze, er will eine Lösung in Flugzeug-Javascript.

    – brg

    8. Januar 2014 um 14:46 Uhr

  • oder jQuery verwenden, das ist auch eine tolle Antwort, danke, ich habe mich für normales Javascript entschieden, aber das ist genauso genial, danke 🙂

    – Benutzer2405469

    8. Januar 2014 um 14:46 Uhr

  • Entschuldigung, als ich sagte “oder jQuery verwenden”, meinte ich, dass jeder eine reine Javascript-Lösung gibt und dies eine JQuery-Lösung ist, in einem scherzhaften Ton …

    – Benutzer2405469

    8. Januar 2014 um 14:50 Uhr

Verwenden Sie einfach das Ereignisobjekt

function search(e) {
    e = e || window.event;
    if(e.keyCode == 13) {
        var elem = e.srcElement || e.target;
        alert(elem.value);
    }
}

Sie sollten keinen Javascript-Code in Ihren HTML-Code einfügen, da Sie diesen Eingaben eine Klasse (“Suche”) zuweisen, gibt es keinen Grund, dies zu tun. Eine bessere Lösung wäre, so etwas zu tun:

$( '.search' ).on( 'keydown', function ( evt ) {
    if( evt.keyCode == 13 )
        search( $( this ).val() ); 
} ); 

Hören Sie die change Veranstaltung.

document.querySelector("input")
  .addEventListener('change', (e) => {
    console.log(e.currentTarget.value);
 });

    const $myInput = document.getElementById('myInput');

    $myInput.onkeydown = function(event){
        if(event.key === 'Enter') {
            alert($myInput.value);        
        }
    }

Benutzer-Avatar
BenMorel

So etwas (nicht getestet, sollte aber funktionieren)

Übergeben Sie dies als Parameter in HTML:

<input type="text" placeholder="some text" class="search" onkeydown="search(this)"/>

Und warnen Sie den Wert des an die Suchfunktion übergebenen Parameters:

function search(e){
  alert(e.value);
}

1300890cookie-checkRuft den Wert des Eingabetexts ab, wenn die Eingabetaste gedrückt wird

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy