我有一个奇怪的问题。我正在为Magento开发一些东西。我添加了链接“选择所有类别”并添加一个jQuery事件来检查所有复选框,当我点击它。它运行良好,但不知何故html没有更新,Magento无法看到所有输入都被选中。但是当我手动点击一个复选框时,它会更新html(我正在查看控制台)并且Magento保存按钮工作正常。
如何解决此问题?我不知道我还应该做什么来执行更新html。它看起来像是有效的(选中复选框),但请看一下控制台和html。必须更新Html。
我创建了jsfiddle:here
答案 0 :(得分:2)
试试这个:
.attr('checked', 'checked');
答案 1 :(得分:1)
只需选中所有复选框,例如this。
您的is(':checked')
IF语句似乎有误,因为它应该包含在.each()
中,因此它适用于所有复选框,请在我链接的小提琴上尝试更简单的方法。
答案 2 :(得分:1)
您是否尝试prop('checked', true);
而不是prop('checked', 'checked');
?
这就是我在所有例子中看到的。
答案 3 :(得分:1)
我明白了。这是Magento的问题。 Magento不使用该表单,它使用隐藏的输入并收集选定的复选框。无论如何都会提升所有答案。感谢
答案 4 :(得分: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;
});
});
可以优化代码