我有一个文本输入和一个按钮(见下文)。我如何使用JavaScript触发按钮的点击事件时,进入键按下文本框内?

在我的当前页面上已经有一个不同的提交按钮,所以我不能简单地将该按钮设置为提交按钮。并且,我只想让Enter键单击这个特定的按钮,如果它是从这个文本框中按下,没有其他。

<input type="text" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />

当前回答

这也可能有帮助,一个小的JavaScript函数,它工作得很好:

<script type="text/javascript">
function blank(a) { if(a.value == a.defaultValue) a.value = ""; }

function unblank(a) { if(a.value == "") a.value = a.defaultValue; }
</script> 
<input type="text" value="email goes here" onfocus="blank(this)" onblur="unblank(this)" />

我知道这个问题已经解决了,但我刚刚发现了一些东西,可以对其他人有所帮助。

其他回答

不过,我非常确定,只要表单中只有一个字段和一个提交按钮,按回车键就应该提交表单,即使页面上还有另一个表单。

然后你可以用js在提交时捕获表单,并做任何你想要的验证或回调。

你可以试试下面的jQuery代码。

$("#txtSearch").keyup(function(e) {
    e.preventDefault();
    var keycode = (e.keyCode ? e.keyCode : e.which);
    if (keycode === 13 || e.key === 'Enter') 
    {
        $("#btnSearch").click();
    }
});

在现代,undeprecated(没有keyCode或onkeydown) Javascript:

<input onkeypress="if(event.key == 'Enter') {console.log('Test')}">

这个onchange尝试很接近,但相对于浏览器(在Safari 4.0.5和Firefox 3.6.3上),行为不佳,所以最终,我不会推荐它。

<input type="text" id="txtSearch" onchange="doSomething();" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />

那就把它编码进去!

<input type = "text"
       id = "txtSearch" 
       onkeydown = "if (event.keyCode == 13)
                        document.getElementById('btnSearch').click()"    
/>

<input type = "button"
       id = "btnSearch"
       value = "Search"
       onclick = "doSomething();"
/>