如何捕获Enter键按?

Joe*_*Yan 49 javascript textbox keypress onkeypress dom-events

在我的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;
}
Run Code Online (Sandbox Code Playgroud)

Try*_*ove 84

形式方法

正如scoota269所说,你应该使用onSubmit,因为在文本框上按下输入将最像是触发表单提交(如果在表单内)

<form action="#" onsubmit="handle">
    <input type="text" name="txt" />
</form>

<script>
    function handle(e){
        e.preventDefault(); // Otherwise the form will be submitted

        alert("FORM WAS SUBMITTED");
    }
</script>
Run Code Online (Sandbox Code Playgroud)

文本框方法

如果你想在输入字段上有一个事件,那么你需要确保你的handle()返回false,否则表单将被提交.

<form action="#">
    <input type="text" name="txt" onkeypress="handle(event)" />
</form>

<script>
    function handle(e){
        if(e.keyCode === 13){
            e.preventDefault(); // Ensure it is only this code that rusn

            alert("Enter was pressed was presses");
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

  • 您需要将事件作为参数传递.<input type ="text"name ="txt"onkeypress ="handle(event)"/> (3认同)
  • 访问JSFiddle时出错页面 (2认同)

bip*_*pen 23

使用onkeypress.检查按下的键是否输入(keyCode = 13).如果是,请调用该searching()函数.

HTML

<input name="keywords" type="text" id="keywords" size="50"  onkeypress="handleKeyPress(event)">
Run Code Online (Sandbox Code Playgroud)

JAVASCRIPT

function handleKeyPress(e){
 var key=e.keyCode || e.which;
  if (key==13){
     searching();
  }
}
Run Code Online (Sandbox Code Playgroud)

这是一个显示它在行动的片段:

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!";
  }
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" name="box22" value="please" onkeypress="handle(event)"/>
<div id="msg1"></div>
Run Code Online (Sandbox Code Playgroud)


Gib*_*olt 12

使用event.key而不是event.keyCode!

function onEvent(event) {
    if (event.key === "Enter") {
        // Submit form
    }
};
Run Code Online (Sandbox Code Playgroud)

Mozilla 文档

支持的浏览器


Rah*_*ich 6

试试这个....

HTML内联

onKeydown="Javascript: if (event.keyCode==13) fnsearch();"
or
onkeypress="Javascript: if (event.keyCode==13) fnsearch();"
Run Code Online (Sandbox Code Playgroud)

JavaScript的

<script>
function fnsearch()
{
   alert('you press enter');
}
</script>
Run Code Online (Sandbox Code Playgroud)


小智 5

你可以使用javascript

ctl.attachEvent('onkeydown', function(event) {

        try {
            if (event.keyCode == 13) {
                FieldValueChanged(ctl.id, ctl.value);
            }
            false;
        } catch (e) { };
        return true
    })
Run Code Online (Sandbox Code Playgroud)