2014-01-08 48 views
13

當我試圖這樣的:獲得輸入文本的價值確認鍵按下

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

一些JavaScript來檢查輸入鍵是否被按下:

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

能正常工作的那一刻,但我的問題是如何獲得文本字段中的值,我正在考慮將一個引用「this」傳遞給該函數,或者如果他們有id,那麼我可以使用ID,但是然後我不明白我能夠區分哪一個已經輸入,再次帶我回到同樣的問題......

+0

你可以通過'this'並獲得'this.value'爲當前目標/文本字段! –

+0

*「應該得到innerHTML *輸入沒有innerHTML ... – epascarello

+0

是的,我應該嘗試通過這個第一,謝謝你的確認,雖然。 – user2405469

回答

22

試試這個:

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

JS代碼

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

DEMO Link

+0

首先我認爲有一個錯誤,然後我試着:完美的作品,是我能找到的最好的vanilly方法。thx。 –

+0

事件不存在... –

+0

對於任何可能發現這種情況的人來說,快速更改,在HTML5中,它應該是onkeypress,而不是onkeydown和event.keyCode == 13 for'Enter'鍵。 –

1

像這樣的東西(未測試,但應工作)

在HTML中傳遞這個作爲參數:

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

,並提醒傳遞到搜索功能參數的值:

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

是啊,這正是我在想什麼...我應該試過它出來之前問,但你已經證實了它:) – user2405469

2

只是使用事件對象

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

這應該被接受回答 – slier

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

的jsfiddle例如:http://jsfiddle.net/NH8K2/1/

+0

是不是jQuery版本。但我想他想要在平面的解決方案javascript。 – ram

+0

或使用jQuery,這也是一個很好的答案,謝謝你,我選擇了普通的Java腳本,但這是一樣真棒,謝謝:) – user2405469

+0

對不起,當我說「或使用jQuery」,我的意思是每個人都給一個純粹的javascript解決方案,這是一個jQuery解決方案,在一個jokey口氣... – user2405469

0

你不應該在你的HTML中放置Javascript代碼,因爲你給這些輸入一個類(「搜索」),沒有理由這樣做。更好的解決方案是做這樣的事情:

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