在我的HTML页面中,我有一个文本框供用户输入搜索关键字 . 当他们单击搜索按钮时,JavaScript函数将生成一个URL并在新窗口中运行 .
当用户通过鼠标单击搜索按钮时,JavaScript函数可以正常工作,但是当用户按下ENTER键时没有响应 .
function searching() {
var keywordsStr = document.getElementById('keywords').value;
var cmd ="http://XXX/advancedsearch_result.asp?language=ENG&+"+ encodeURI(keywordsStr) + "&x=11&y=4";
window.location = cmd;
}
<form name="form1" method="get">
<input name="keywords" type="text" id="keywords" size="50" >
<input type="submit" name="btn_search" id="btn_search" value="Search"
onClick="javascript:searching(); return false;" onKeyPress="javascript:searching(); return false;">
<input type="reset" name="btn_reset" id="btn_reset" value="Reset">
</form>
12 回答
在表单标记上使用onsubmit属性而不是在提交上单击onclick .
你可以使用javascript
一点点通用jQuery给你..
这适用于假设文本框和提交按钮包装在同一个div上 . 在页面上使用多个搜索框进行处理
表格方法
正如scoota269所说,你应该使用
onSubmit
,因为在文本框上按下输入将最像是触发表单提交(如果在表单内)文本框方法
如果你想在输入字段上有一个事件,那么你需要确保你的
handle()
将返回false,否则表单将被提交 .使用
onkeypress
. 检查按下的键是否输入(keyCode = 13) . 如果是,请调用searching()
函数 .HTML
JAVASCRIPT
这是一个片段,展示了它的实际效果:
试试这个....
HTML内联
JavaScript的
您需要为
onkeypress
操作创建一个处理程序 .HTML
JS
容易舔冰淇淋,让我们假设:
your page before:
your page now:
这是一个简单的例子;我假设你的页面有一个简单的正文标签,如果你插入这个单独的onkeypress函数,那就意味着每当你点击ENTER KEY时,警报会弹出[在.keyCode == 13之后使用任何东西]]
所以用这个替换你的BODY标签并点击ENTER进行测试,你会看到它正常工作
使用
event.key
而不是event.keyCode
!Mozilla Docs
Supported Browsers
但是,如果您真的想使用它并需要一个值,请转到http://keycode.info/