我已将以下代码放在页面顶部的头部:
<script type="text/javascript">
function stopRKey(evt) {
console.log(evt.keyCode);
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
console.log(evt.keyCode);
if ((evt.keyCode == 13) && (node.type == "text")) {
return false;
}
}
document.onkeypress = stopRKey;
</script>
在我的一个页面上,当我按下回车时它没有触发事件。但是我的页面中只有一个看似有效,并记录了13的键码,从而停止了回发。
为什么这个事件不会在这个特定页面上触发的任何想法?
干杯, 皮特
答案 0 :(得分:0)
可能在您的断页上有表单元素触发不是文本节点的回发。尝试删除阻止提交的条件的第二部分,看看会发生什么:
if (evt.keyCode == 13) {
return false;
}
答案 1 :(得分:0)
您当然可以简化代码。对于<input type="text">
元素,没有理由不这样做:
function stopRKey(evt) {
evt = evt || window.event;
var node = evt.target || evt.srcElement;
console.log(evt.keyCode);
if (evt.keyCode == 13 && node.nodeName == "INPUT" && node.type == "text") {
return false;
}
}