我正在使用此功能处理输入点击搜索文本框,但它会触发页面中的另一个按钮,如何停止触发该按钮并调用我的search()函数。
InputKeyPress(e) {
if (window.event) {
if (event.keyCode == 13) {
search();
}
} else {
if (e) {
if (e.which == 13) {
search();
}
}
}
}
答案 0 :(得分:1)
在keyCode == 13
案例中,您需要阻止keypress
事件的默认操作。执行此操作的标准方法是在事件对象上调用preventDefault
函数(如果它有一个;它不在早期版本的IE上)。较旧的方法是从事件处理函数返回false
。这两种方法的“腰带和括号”方法都没有真正的危害。 : - )
您还可以稍微缩短您的功能:
function InputKeyPress(e) {
var keyCode;
e = e || window.event;
keyCode = e.keyCode || e.which;
if (keyCode == 13) {
search();
if (e.preventDefault) {
e.preventDefault();
}
return false;
}
}
答案 1 :(得分:1)
你需要像这样添加“return false”:
function InputKeyPress(e) {
if (!e)
e = window.event;
var keyCode = e.keyCode || e.which;
if (keyCode == 13) {
search();
return false;
}
return true;
}
并且还将来自文本框的调用更改为:
<input .... onkeypress="return InputKeyPress(event);" ...>
意思不仅仅是调用函数而是“返回”它。