2013-12-19 64 views
0

我不知道這是否可能,或者正確的解決方案是什麼,但我有4個複選框class="buttons",我想運行不同的功能,取決於複選框是否被選中。addEventListener檢測類型的變化

change顯然檢測到檢查和取消檢查。有沒有辦法區分它們(僅限JavaScript)?

document.addEventListener("check", function(){alert("checked");}) 
document.addEventListener("uncheck", function(){console.log("unchecked");}) 
+0

對於複選框,這是更好的使用*點擊*事件,而不是*的變化*因爲直到複選框失去焦點(其中有不幸的可用性問題),某些瀏覽器不會調度change事件。 – RobG

回答

2
myCheckbox.addEventListener("change", function(e){ 
     if(e.target.checked) 
       alert("checked"); 
      else 
       alert('unchecked'); 
}); 
2

在你change處理,this是元素,和this.checked給你描述的複選框的狀態布爾值。

my_checkbox.addEventListener("change", function(event) { 
    if (this.checked) 
     console.log("checked"); 
    else 
     console.log("not checked"); 
}, false);