0

我有奇怪的问题。我正在为 Magento 开发一些东西。我添加了链接“选择所有类别”并添加了一个 jQuery 事件以在我单击它时检查所有复选框。它工作得很好,但不知何故 html 没有更新,Magento 看不到所有输入都被选中。但是当我手动单击一个复选框时,它会更新 html(我正在查看控制台)并且 Magento 保存按钮工作得很好。

如何解决这个问题?我不确定我还应该做什么来执行更新 html。看起来它可以工作(选中复选框),但请查看控制台和 html。必须更新 HTML。

我创建了 jsfiddle:这里

4

5 回答 5

2

试试这个:

.attr('checked', 'checked');
于 2012-10-05T08:47:54.977 回答
1

只需选中所有复选框,就像这样

您的is(':checked')IF 语句似乎是错误的,因为它应该包含在 an 中,.each()因此它适用于所有复选框,请在我链接的小提琴上尝试更简单的方法。

于 2012-10-05T08:32:17.463 回答
1

你试过prop('checked', true);代替prop('checked', 'checked');吗?这就是我在所有例子中看到的。

于 2012-10-05T08:34:04.920 回答
1

我想到了。这是Magento的问题。Magento 不使用这种形式,它使用隐藏输入并收集选定的复选框。无论如何都会赞成所有答案。谢谢

于 2012-10-05T08:40:27.147 回答
1

你可以使用类似的东西:

// custom jQuery added
jQuery(function() {
    var to_check = false;       
    jQuery(".select-all-categories").click(function(){
        if (!to_check)
            to_check = true;
        else
            to_check = false;

        jQuery("#banner-categories input[type=checkbox]").each(function(){
            if (!to_check)      
                jQuery(this).removeAttr("checked");
            else  
                jQuery(this).attr("checked","checked");
        });          
        return false;
    });
});

代码可以优化

于 2012-10-05T08:41:54.650 回答