2014-01-08 47 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()); 
});