这个JavaScript if语句有什么问题?

这个JavaScript if语句有什么问题?,javascript,Javascript,当用户在文本框中按enter键KeyCode==13时,该函数将运行,但我无法让它与searchButton一起工作 这个问题是| |表达式吗?该函数应在用户按searchButton或enter键时运行。对document.getElementByIdsearchButton.click的调用是模拟单击的编程方式 您可能想做的是: function myFunction(e) { if((e.target.id === 'mySearch' && e.keyCode =

当用户在文本框中按enter键KeyCode==13时,该函数将运行,但我无法让它与searchButton一起工作

这个问题是| |表达式吗?该函数应在用户按searchButton或enter键时运行。

对document.getElementByIdsearchButton.click的调用是模拟单击的编程方式

您可能想做的是:

function myFunction(e) {
    if((e.target.id === 'mySearch' && e.keyCode === 13) || e.target.id === 'searchButton'){

    }
}

好的,当您按下enter键时,myFunction会被一个具有keyCode属性的事件调用,这很好

但是,当您单击按钮时,事件没有keyCode属性,因此在条件文档的右侧。getElementByIdsearchButton.click运行。click是一个返回undefined的方法。因此,条件解析为false,函数体的其余部分将不会运行


您可以改为检查事件的类型。

JavaScript.click always返回未定义检查的e.type=='click'&&this.id=='searchButton'更新由于某些原因,此更新不起作用。。。我不知道为什么,因为它似乎应该完全工作。。。缺少一个括号。。。很抱歉。
function myFunction(e) {
    if((e.target.id === 'mySearch' && e.keyCode === 13) || e.target.id === 'searchButton'){

    }
}