2014-01-08 7 views
13
gedrückt

ich dies versuchen:den Wert des eingegebenen Textes erhalten, wenn Enter-Taste

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

mit einigen Javascript um zu überprüfen, ob die Enter-Taste gedrückt wird:

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

das funktioniert im Moment in Ordnung , aber meine Frage, wie man den Wert innerhalb des Textfelds bekommt, dachte ich daran, einen Verweis "das" an die Funktion zu übergeben, oder wenn sie IDs hätten, dann könnte ich IDs verwenden, aber dann sehe ich nicht, wie ich unterscheiden könnte welcher Typ wurde getippt und bringt mich wieder zum selben Problem ...

+0

Sie können 'this' übergeben und' this.value' für das aktuelle Ziel/Textfeld erhalten! –

+0

* "sollte die innerHTML * -Eingaben haben nicht innerHTML ... – epascarello

+0

yeah Ich hätte versucht, dies zuerst zu übergeben, danke für die Bestätigung aber. – user2405469

Antwort

22

Versuchen Sie folgendes:

<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

+0

Zuerst dachte ich, es war ein Fehler drin, dann habe ich versucht: Funktioniert perfekt und ist der feinste vanilly Ansatz, den ich finden konnte. Thx. –

+0

Ereignis existiert nicht ... –

+0

Nur eine schnelle Änderung für jemanden, der dies zufällig finden könnte, in HTML5 sollte onkeypress statt onkeydown und event.keyCode == 13 für 'Enter' Taste sein .. –

1

Etwas Ähnliches (nicht getestet, aber funktionieren sollte)

dies in Html als Parameter übergeben:

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

Und den Wert der in die Suchfunktion übergebene Parameter alarmieren:

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

ja das ist genau das, was ich dachte ... Ich hätte es ausprobiert vor der Frage, aber Sie haben es bestätigt :) – user2405469

2

einfach mit dem Event-Objekt

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

das sollte akzeptiert werden Antwort – slier

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

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

+0

Ist es nicht jQuery Version. Aber ich denke, er will Lösung in der Ebene Javascript – ram

+0

oder jQuery verwenden, das ist auch eine gute Antwort, danke, ich entschied mich für normale Java Skript, aber das ist genauso genial, danke :) – user2405469

+0

Entschuldigung, wenn ich sagte "oder jQuery verwenden", meinte ich, dass jeder eine reine Javascript-Lösung gibt und dies ist eine jQuery-Lösung, in einem jokey-Ton ... – user2405469

0

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