Javascript onChange函数没有被触发

时间:2016-01-15 12:58:42

标签: javascript

我在复选框中进行了编码:

<input type="checkbox" name="ECVValve" id="ECVValve" onChange="setEcvcheck();">

复选框也可以通过其他功能(在某些条件下激活)检查,如下所示。

function setEcvcheck() {
        if (document.getElementById("ECVValve").checked) {
              document.getElementById("ECVValve").checked = false;
        } else {            
              document.getElementById("ECVValve").checked = true;
        }      
  }

如果选中该复选框,则选中&#34;&#34;通过函数setEcvcheck,不会触发onChange事件。它是如何工作的还是我错过了其他的东西?

3 个答案:

答案 0 :(得分:2)

我认为在代码中有一个检查和取消检查循环..因为每次将其更改为true时,它将调用onChange,然后它将返回功能并将其设置为false。 您是否尝试检查并取消选中相同的复选框? (ECVValve)?

答案 1 :(得分:1)

实际上,事件正在解雇。当您单击时,检查它,您的JavaScript代码取消选中它。而且你永远不会检查复选框。您不需要编写javascript代码来检查或取消选中。为了确保它被解雇,试试这个:

function setEcvcheck() {
    alert('Ok!');
}

答案 2 :(得分:1)

您可以以编程方式触发复选框的onchange事件。

在下面的代码中,当单击按钮切换复选框并强制触发它的onChange事件。

function test() {
  console.log("test");
}

function btnclick() {
  var x = document.getElementById("1");
  x.checked = !x.checked;
  document.getElementById("1").onchange()
}
<input type="checkbox" onChange="test()" id="1">hi

<button onClick="btnclick()">btn</button>