5

此代码在 firefox(V21.0) 中不适用于我,但在 IE(V9,V10) 和 Chrome (V 27.0.1453.110 m) 中有效

方法校准:

<input type="text" id="txt1" class="search-bar-input"
                         onkeyup="handleKeyPress('btn1');">

方法定义:

function handleKeyPress(searchButtonId) {
   if (event.keyCode === 13) {
    alert(event.KeyCode);
    }
}

错误信息:

ReferenceError: event is not defined
if (event.keyCode === 13) {

任何人有任何想法来解决这个问题?

4

2 回答 2

11

采用

<input type="text" id="txt1" class="search-bar-input" onkeyup="handleKeyPress(event, 'btn1');">

然后

function handleKeyPress(event) {
    event = event || window.event //For IE
    if (event.keyCode === 13) {
        alert(event.keyCode);
    }
}

演示:小提琴

于 2013-06-12T07:21:59.460 回答
2

您可以将btn1参数存储为data-*属性并使用不显眼的 Javascript 来分配事件处理程序(而不是内联)。

你的行alert(event.KeyCode);也错了,KinKeyPress应该是小写的k

小提琴

HTML

<input type="text" id="txt1" class="search-bar-input" data-searchButtonId="btn1" />

Javascript:

function handleKeyPress(event) {
   if (event.keyCode === 13) {
        console.log(event.keyCode + this.getAttribute("data-searchButtonId"));
   }
}

window.onload = function(){
   document.getElementById("txt1").onkeyup = handleKeyPress;   
}
于 2013-06-12T07:11:21.413 回答