将eventListener添加到复选框

时间:2016-09-29 12:36:31

标签: javascript jquery html css javascript-events

我可以在eventListener中添加JavaScript到复选框,还是必须使用html onclick = someFunc()中的属性来触发功能。 我设置了一个fiddle我尝试添加eventListener,但这并没有给我预期的输出。

var checkb = document.getElementById("checkbox1");

(function() {

    checkbFunc(checkb);

    function checkbFunc(checkb) {
        checkb.addEventListener("click", function(e) {
            if (checkb.checked) {
                alert("i am checked");

            } else {
                alert("i am not checked")
            }
        });
    }
});

4 个答案:

答案 0 :(得分:1)

是的,你可以。只需从所有函数中解开代码,然后使用change事件,它应该可以正常工作

var checkb = document.getElementById("checkbox1");

checkb.addEventListener("change", function(e) {
    if (this.checked) {
        alert("i am checked");
    } else {
        alert("i am not checked")
    }
});

FIDDLE

答案 1 :(得分:0)

你可以像这样做其他方式

var checkb = document.getElementById("checkbox1");

(function() {

    checkbFunc(checkb);

    function checkbFunc(checkb) {
        checkb.addEventListener("click", function(e) {
            if( checkb.checked ) {
                alert("i am checked");

            } else {
                alert("i am not checked")
            }
        });
    }
})(); // <--added this    

Demo

答案 2 :(得分:0)

您只需删除匿名函数

即可

var checkb = document.getElementById("checkbox1");

checkbFunc(checkb);
    
function checkbFunc(checkb) {
  checkb.addEventListener("click", function(e) {
    if( checkb.checked ) {
      alert("i am checked");

    } else {
      alert("i am not checked")
    }
  });
}
<input type="checkbox" id="checkbox1"/>

或者,更好的是,使用JQuery document.ready block。

答案 3 :(得分:0)

您的代码无效,因为未执行主要的匿名函数。

以下代码适合您。

SELECT t1.ID, t1.Date, t2.Type, t1.Username
FROM t1
INNER JOIN t2
ON t1.CareID = t2.CareID AND 
t1.Date = t2.Date AND
t1.Username = t2.Username
LEFT JOIN t3
ON t1.CareID = t3.CareID AND t1.Username = t3.Username
GROUP BY t1.ID, t1.Date, t2.Type, t1.Username
HAVING COUNT(*) = 1 AND t1.Date <= t3.Date