[英]Whats wrong with this JavaScript if statement?
当用户在文本框( KeyCode === 13
)中按下 Enter 键时,该函数会运行,但我无法让它与searchButton
一起searchButton
function myFunction(e) {
if(e.keyCode === 13 || document.getElementById("searchButton").click()){
e.preventDefault();
var searchValue = document.getElementById("mySearch").value;
for(var i = 0; i < users.length; i++){
if(users[i]['last_name'] === searchValue){
document.getElementById("return").innerHTML = JSON.stringify(users[i]);
return;
}
}
}
}
<input type="search" id="mySearch" onkeypress="myFunction(event)" />
<button id="searchButton" onclick="myFunction(e)">SEARCH</button>
问题是||
表达? 该函数应该在用户按下searchButton
或按下 Enter searchButton
时运行。
对document.getElementById("searchButton").click()
的调用是一种模拟点击的编程方式。
你可能的意思是:
function myFunction(e) {
if((e.target.id === 'mySearch' && e.keyCode === 13) || e.target.id === 'searchButton'){
}
}
好的,所以当你按下回车键时, myFunction
会被一个具有 keyCode 属性的事件调用,所以这一切都很好。
但是,当您单击按钮时,该事件没有 keyCode 属性,因此您的条件document.getElementById("searchButton").click()
的右侧会运行。 click
是一种模拟 mouseclick的方法,返回 undefined。 所以条件解析为false,函数体的其余部分将不会运行。
您可以改为检查事件的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.