How to capture Enter key press?
在我的HTML页面中,我有一个文本框供用户输入搜索关键字。 当他们单击搜索按钮时,JavaScript函数将生成一个URL并在新窗口中运行。
当用户通过鼠标单击搜索按钮时,JavaScript函数可正常工作,但当用户按下ENTER键时没有响应。
1 2 3 4 5 | 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; } |
1 2 3 4 5 6 | <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> |
形式方法
正如scoota269所说,你应该使用
1 2 3 4 5 6 7 8 9 10 | <form action="#" onsubmit="handle"> <input type="text" name="txt" /> </form> function handle(e){ e.preventDefault(); // Otherwise the form will be submitted alert("FORM WAS SUBMITTED"); } |
文本框方法
如果你想在输入字段上有一个事件,那么你需要确保你的
1 2 3 4 5 6 7 8 9 10 11 12 | <form action="#"> <input type="text" name="txt" onkeypress="handle(event)" /> </form> function handle(e){ if(e.keyCode === 13){ e.preventDefault(); // Ensure it is only this code that rusn alert("Enter was pressed was presses"); } } |
使用
HTML
1 | <input name="keywords" type="text" id="keywords" size="50" onkeypress="handleKeyPress(event)"> |
JAVASCRIPT
1 2 3 4 5 6 | function handleKeyPress(e){ var key=e.keyCode || e.which; if (key==13){ searching(); } } |
这是一个显示它在行动的片段:
1 2 3 4 5 6 7 8 | document.getElementById("msg1").innerHTML ="Default"; function handle(e){ document.getElementById("msg1").innerHTML ="Trigger"; var key=e.keyCode || e.which; if (key==13){ document.getElementById("msg1").innerHTML ="HELLO!"; } } |
1 | <input type="text" name="box22" value="please" onkeypress="handle(event)"/> |
试试这个....
HTML内联
1 2 3 | onKeydown="Javascript: if (event.keyCode==13) fnsearch();" or onkeypress="Javascript: if (event.keyCode==13) fnsearch();" |
JavaScript的
1 2 3 4 | function fnsearch() { alert('you press enter'); } |
你可以使用javascript
1 2 3 4 5 6 7 8 9 10 | ctl.attachEvent('onkeydown', function(event) { try { if (event.keyCode == 13) { FieldValueChanged(ctl.id, ctl.value); } false; } catch (e) { }; return true }) |
一点点通用jQuery给你..
1 2 3 4 5 6 | $('div.search-box input[type=text]').on('keydown', function (e) { if (e.which == 13) { $(this).parent().find('input[type=submit]').trigger('click'); return false; } }); |
这适用于假定文本框和提交按钮包装在同一个div上。在页面上使用多个搜索框进行处理
使用
1 2 3 4 5 | function onEvent(event) { if (event.key ==="Enter") { // Submit form } }; |
Mozilla文档
支持的浏览器
1 2 3 4 5 6 7 8 9 10 11 | // jquery press check by Abdelhamed Mohamed $(document).ready(function(){ $("textarea").keydown(function(event){ if (event.keyCode == 13) { // do something here alert("You Pres Enter"); } }); }); |
1 2 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> <textarea></textarea> |
您需要为
HTML
1 | <input name="keywords" type="text" id="keywords" size="50" onkeypress="handleEnter(this, event)" /> |
JS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function handleEnter(inField, e) { var charCode; //Get key code (support for all browsers) if(e && e.which) { charCode = e.which; } else if(window.event) { e = window.event; charCode = e.keyCode; } if(charCode == 13) { //Call your submit function } } |
在表单标记上使用onsubmit属性而不是在提交上单击。
这是简单的ES-6风格的答案。用于捕获"输入"键按下并执行某些功能
1 2 3 | <input onPressEnter={e => (e.keyCode === 13) && someFunc()} /> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <form action="#"> <input type="text" id="txtBox" name="txt" onkeypress="handle" /> </form> $("#txtBox").keypress(function (e) { if (e.keyCode === 13) { alert("Enter was pressed was presses"); } return false; }); |