使用jQuery以编程方式“勾选”复选框

时间:2014-01-16 14:45:30

标签: javascript checkbox jquery eventtrigger

我想以编程方式触发已选中复选框。例如:

$(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

有什么建议吗?

提前致谢。

3 个答案:

答案 0 :(得分:7)

您可以在复选框上调用click()来触发之前绑定的事件,而不是将属性设置为已选中


$(function(){
    var $checkbox = $("#idCheckbox");
    $checkbox.on("change", function(){
        if(this.checked){
            alert("Is checked!");
        }
    });

    $checkbox.click();
});

示例: http://jsfiddle.net/hunter/wpLb2/

答案 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事件。