-1

我正在尝试在复选框字段中使用 jQuery 来计算已检查的字段数,但我似乎没有正确的语法。

下面是我尝试计算已检查的字段数(有超过 20 个复选框字段)。

$('#product-effect-table input[type=checkbox]').click(function()
  if($('#product-effect-table input[type=checkbox]').length == $('#product-effect-table input[type=checkbox]:checked').length) {
            $("#selectall").attr("checked", "checked");
        }
  else {
            $("#selectall").removeAttr("checked");
        }

    });

我认为错误在于我的 DOM 选择。

复选框存储在IDproduct-effect-table 的表中

下面是表格和输入栏的示例;

 <table id="product-effect-table">
   <td>  <input type="checkbox" name="effect5" id="effect5" value="1" checked="checked"       product_effect_id="5" /></td>
</table>
4

1 回答 1

1

工作演示

不匹配{}您忘记添加大括号({.click(function () {

$('#product-effect-table input[type=checkbox]').click(function () {
    if ($('#product-effect-table input[type=checkbox]').length == $('#product-effect-table input[type=checkbox]:checked').length) {
        $("#selectall").attr("checked", "checked");
    } else {
        $("#selectall").removeAttr("checked");
    }
});

推荐人

.prop()优先于.attr()

所以你可以利用.prop()而不是.attr()

像这样:- .prop('checked',true).prop('checked',false)

于 2013-08-06T09:20:26.893 回答