复选框不检查第一行

时间:2014-11-06 10:28:55

标签: javascript php checkbox twig

您好我有11行,每行有3个复选框和1个复选框,用于检查所有行或取消选中所有行复选框。我还有一个常规复选框,用于检查/取消选中所有行的所有复选框。我有第一行复选框的问题,它没有检查,它第一次检查所有3个复选框,但没有得到检查,之后没有任何改变。所有其他复选框工作正常。另一件事情是,如果选中常规复选框,那么第一行的第一个复选框在检查/取消选中时有效,但是当其他行的复选框是checke / unchecked时,会反映出第一个复选框的变化,它会被选中/取消选中:< / p>

                                                                            id="selectall">
            {% for group, privs in privileges %}
                <div class="well well-sm priv-panel"><span class="has-success">{{ group }}</span>
                    {% for p in privs %}
                        <span class="priv {% if p.ACTIVE %}priv-active{% else %}priv-inactive{% endif %}">
                        <input type="checkbox" class="checkbox1 checkbox1_{{ group }}"
                               name="privs[{{ p.PRIVILEGE_ID }}]" id="{{ p.PRIVILEGE_NAME }}"
                               {% if p.ACTIVE %}checked{% endif %}/>
                        <label for="{{ p.PRIVILEGE_NAME }}">{{ p.PRIVILEGE_FRIENDLY_NAME }}</label></span>
                    {% endfor %}
                    <input style="float:right;" type="checkbox" class="priv_group_toggle_cb"
                           value="{{ group }}">
                </div>
            {% endfor %}

$("#selectall, .priv_group_toggle_cb").on('change', function () {
                var $this = $(this);
                var checked = $this.is(':checked');
                var cb = null;

                if ($this.hasClass('priv_group_toggle_cb')) {
                    cb = $("[name*=privs]", $this.parent());
                } else {
                    cb = $("[name*=privs], .priv_group_toggle_cb");
                }

                cb.each(function (idx, val) {
                    if (val.checked !== checked) {
                        val.checked = checked;
                        $(val).trigger('change');
                    }
                });
            });

            $(".table-cb-toggle tr").on('click', function () {
                $(this).find("input[type=checkbox]").click();
            });

            $(".priv-panel input[type=checkbox]").on('change', function () {
                var parent = $(this).parent().toggleClass('priv-active priv-inactive');
                var div = parent.parent();

                var cb = div.find("input[type=checkbox]:not(.priv_group_toggle_cb)");

                var count = cb.length;
                var checked_cnt = Array.prototype.slice.call(cb).reduce(function (c, i) {
                    return c + (i.checked + 0)
                }, 0);

                div.find(".priv_group_toggle_cb")[0].checked = checked_cnt == count;
            });

            $(".mytable tr td input[type=checkbox]").on('change', function () {
                $(this).next("i").toggleClass('fa fa-check-square-o fa fa-square-o');
            });

0 个答案:

没有答案