事件处理程序的问题

时间:2010-06-19 09:47:54

标签: javascript

function getFieldName(e) { 
  e = e || window.event;
  var key = e.keyCode || e.which,
      target = e.target || e.srcElement;

  alert(target.name);
  return (key != 13);
}

我在body标签onkeypress = getFieldName(event);

上调用了上述函数

我得到了所需字段的名称,但无法检入IE以及FF

if(target.name == 'check') {
    // works fine in FF but in IE I'm not able 
    // to come inside this if-block, please suggest 
}

感谢

2 个答案:

答案 0 :(得分:0)

我看到你已经将这篇文章标记为jQuery ...如果你真的使用jQuery来管理事件处理程序,那么你可以使用e.which来找到被按下的键和e.target来找到DOM目标。它也担心你的跨浏览器的东西。

要将函数作为事件处理程序附加,可以按照以下简单示例: $(document).keypress(getFieldName);

答案 1 :(得分:0)

jQuery already normalizes some event properties internally,所以你可以使用event.targetevent.which,你不需要检查其他人,如下所示:

$(document).keypress(getFieldName);
function getFieldName(e) {
    alert(e.target.name);
    if(e.which == 13) {
      alert("Key pressed was enter");  
    } else {
      alert("Key pressed was not enter");  
    }
}
​

You can view a quick demo here