0

有可能吗?

在我的页面中,我得到了

<body onload="debug()" id="content" onkeydown="checkKey()" >

function checkKey() {
    if ((window.event.keyCode > 9) || (window.event.keyCode < 9)) {
        document.actionForm.saveStatus.value = "Not saved";
    }
}

但我不希望当用户只是转到页面并使用搜索表单提交搜索时发生这种情况,除非首先保存会话数据,所以我想从搜索框中排除 checkkey() 的事件:

<input onkeypress="javascript:searchWithEnter('Oversikt','fastsearch')" title="Nummerformat:

PCT/SE2009/123456
PCTSE2009123456
PSE09123456

ITS/SE09/12345
ITSSE0912345
ISE0912345

1234567-8
12345678" type="text" size="40" name="fastsearch">
    <input type="button" value="Sök" onclick="javascript:doSubmitFastSearch('Oversikt','fastsearch')">

我是否应该从 body 标记中删除 onkeypress 并将 checkkey() 设置为从单个组件中调用?你有什么建议?

4

1 回答 1

1

您可以使用event.stopPropagation来阻止事件冒泡到<body/>.

var stop = function(e) {
  e.stopPropagation();
};
var $el = document.getElementsByName("fastsearch")[0];
$el.onkeydown = stop;

但是,除非绝对必要,否则您应该考虑不要将如此鲁莽的事件绑定到<body/>.

于 2012-09-28T07:17:45.653 回答