我想以编程方式触发已选中复选框。例如:
$(function(){
//create a trigger that if a checkbox changes, eg is clicked/change show an alert
$("#idCheckbox").on("change", function(){
if($(this).is(':checked')){
alert("Is checked!");
}
});
//onload put it checked
$("#idCheckbox").attr("checked", "checked");
});
“问题”是,如果我通过javascript检查加载复选框,则不会触发on()方法,并且不会显示警报。
上面的代码是一个示例,实际上检查复选框的脚本不是我的,我无法修改它。
我正在使用jQuery 1.8.0
有什么建议吗?
提前致谢。
答案 0 :(得分:7)
您可以在复选框上调用click()
来触发之前绑定的事件,而不是将属性设置为已选中
$(function(){
var $checkbox = $("#idCheckbox");
$checkbox.on("change", function(){
if(this.checked){
alert("Is checked!");
}
});
$checkbox.click();
});
答案 1 :(得分:0)
您可以将内联定义的函数移动到全局范围并调用它:
function checkBoxClick(){
if($(this).is(':checked')){
alert("Is checked!");
}
}
$(function(){
//create a trigger that if a checkbox changes, eg is clicked/change show an alert
$("#idCheckbox").on("change", checkBoxClick);
// Trigger your click function
checkBoxClick();
//onload put it checked
$("#idCheckbox").attr("checked", "checked");
});
答案 2 :(得分:0)
当使用javascript以编程方式检查复选框时,onchange事件不会自动触发。因此,将复选框标记为已选中的脚本应调用onchange事件。