通过jQuery以编程方式检查输入而不是调用form' s .change()事件?

时间:2014-02-10 02:38:39

标签: jquery forms checkbox

所以我使用jQuery来复制一些表单复选框,并且我正在执行以下操作:

$('.sexyCheckBox').on("click", function(e) {
    var clickedInput = $(this).parent().find("input");
    clickedInput.prop("checked", !clickedInput.prop("checked"));
}

但是,似乎即使表单中的复选框确实被切换,表单的.change()事件也没有被调用。

这是jQuery中的错误还是我错过了什么?

1 个答案:

答案 0 :(得分:3)

输入值的编程更改不会触发更改事件,您需要手动触发它。仅当用户更改输入元素的值时才会触发更改事件。

clickedInput.prop("checked", !clickedInput.prop("checked")).change();

另一种写这个的方法是

clickedInput.prop("checked", function (i, val) {
    return !val;
}).change();//or .trigger('change')