onkeydown无法使用javascript

时间:2016-12-06 01:46:18

标签: javascript

为什么我的函数在给定此特定代码时不返回警报?

function searchString() {
  if (event.keyCode == alert("Success!"); }
}

这是我的HTML代码:

<input type="text" id="searchString" name="searchString" onkeydown="searchString();"/>

3 个答案:

答案 0 :(得分:2)

您需要在函数中传递event参数。否则,当您尝试调用event方法时,keyCode未定义:

function searchString(event) {
  if(event.keyCode == 13) {
    alert("Success!"); 
  }
}

&#13;
&#13;
document.querySelector('input').addEventListener('keyup', searchString);

function searchString(event) {
  if (event.keyCode == 13) {
    alert("Success!"); 
  }
}
&#13;
<p>Press the <b>enter</b> key in the input below see your alert</p>

<input type="text" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你可以使用纯javascript:

const search = document.getElementById('searchString');

search.addEventListener('keydown', (e) => {
  if (e.keyCode === 13) {
    // your code here
  }
}

注意:13是输入

的关键代码

答案 2 :(得分:0)

您需要确保将实际的event作为参数传递...否则,它将在函数中无法识别。要查看哪个代码与哪个密钥相关联,请尝试以下操作。

function check(event)
{
    var keycode = event.keyCode;
    alert(keycode);
}

然后......

<input type="text" id="check" name="check" onkeydown="check();">

返回键与'13'相关联。因此,如果您只想在按下时执行某些操作,请执行以下操作。

function searchString(event)
{
    if(event.keyCode === 13) {
        alert("return key was pressed");
        // do something ....
    }
}

html代码应如下所示。

<input type="text" id="searchString" name="searchString" onkeydown="searchString();">

请注意我使用'==='而不是'=='。现在是推荐的做法。另请注意,input末尾的正斜杠不是必需的。