如何绑定到复选框选中的事件

问题描述:

如果复选框被选中,如何运行javascript代码?如何绑定到复选框选中的事件

复选框被定义为

<input type="checkbox" id="Maksja_piiratudes" name="Maksja_piiratudes" 

onfocus="if(typeof this.ischanged=='undefined') this.ischanged=false" onblur="summarefresh()" onclick="dataChanged(this)"> 

我试图

$(function() { 
    $("#Maksja_piiratudes").on("change", function() { 

alert('checkbox is checked'); 

}); // end on change 
}); // end $ 

但这也运行如果复选框没有被选中。 如何选择checkgox时才运行代码?

Bootstrap 3,jquery,jQuery UI被使用。

+0

缺失一行。我编辑了问题并添加了缺失的行 – Andrus

您可以使用复选框输入的checked属性。

$(function() 
{ 
    $('#Maksja_piiratudes').on('change', function() 
    { 
     if (this.checked) 
     { 
      alert('checkbox is checked'); 
     } 
    }); 
}); 

编辑:

我喜欢香草风格更..所以以防万一有人需要它:

document.querySelector('#Maksja_piiratudes') 
     .addEventListener('change', function() 
{ 
    if (this.checked) 
    { 
     alert('checkbox is checked!'); 
    } 
}, false); 
+0

'event.target ===这个' – Andreas

+0

这可能会绑定到页面中的所有复选框。如何运行只由html定义的特定复选框的代码有问题?此复选框具有唯一的ID和名称属性'id =“Maksja_piiratudes”name =“Maksja_piiratudes”' – Andrus

+0

这是编辑代码之前的示例,请参阅我上次更新 – Kai

尝试这个

$(function() { 
    $("#Maksja_piiratudes").on("change", function() {  
     if ($(this).prop("checked") == true) { 
      alert('checkbox is checked'); 
     } //end if 
    }); // end on change 
}); // end $ 

如果你想使其成为全球所有复选框使用以下:

$(function() { 
    $("input[type='checkbox']").on("change", function() {  
     if ($(this).prop("checked") == true) { 
      alert('checkbox is checked'); 
     } //end if 
     else { 
      alert('checkbox is unchecked'); 
     } 
    }); // end on change 
}); // end $