触发复选框时jQuery中的递归错误太多

时间:2015-07-08 11:40:25

标签: javascript jquery checkbox

我试图触发未选中的复选框,所以我在谷歌的帮助下尝试了很多,但我找不到解决方案,

尝试1:

jQuery(".checkbox").attr("checked", false).trigger("click");

使用尝试1时,我的OP没有变化,

尝试2:

jQuery(".checkbox:checkbox").each(function() {
    var code = jQuery(this).val();
    var all_list = jQuery("#all_listings").val().split(",");

    if (jQuery.inArray(code,all_list) >= 0) {
        return false;
    }
    else {
        jQuery(this).trigger("click");
    }
});

使用尝试2会返回错误too much recursion

那么如何避免这个错误呢?或者如何触发未选中的复选框?

谢谢!

解决:@praveen kumarattempt 2的帮助下解决了问题我改变了if else,现在too much recursion已解决了。

jQuery(".checkbox:checkbox").each(function() {
        var code = jQuery(this).val();
        var all_list = jQuery("#all_listings").val().split(",");
        if(jQuery.inArray(code,all_list) == -1){
           jQuery(this).trigger("click");
        }
    }

1 个答案:

答案 0 :(得分:3)

您可以通过以下方式完全更改第二次尝试

jQuery(".checkbox:checkbox:not(:checked)").trigger("click");

希望这有帮助!

你需要这样使用:

jQuery(".checkbox").filter(function () {
  return (jQuery(this).prop("checked") == false);
}).trigger("click");

或者您可以使用:

jQuery(".checkbox").filter(function () {
  return (this.checked == false);
}).trigger("click");

或者更简单:

$('.checkbox:not(:checked)').trigger("click");