【发布时间】:2016-11-28 19:18:43
【问题描述】:
我有下面格式的 html 复选框代码
<label class="checkbox-inline">
<input type="checkbox" name="category[]" value="1" data-id="1" class="categorychk" checked="checked">Men
</label>
<label class="checkbox-inline">
<input type="checkbox" name="category[]" value="2" data-id="2" class="categorychk" checked="checked">Women
</label>
在 ajax 成功响应时,我按照 jquery 代码执行它会正常工作。
$.each(data, function(index,value) {
$(".categorychk[data-id="+value+"]").attr("checked",true);
});
但问题是在调用之前我清除了所有选中的标记,然后应用上面的代码。但它不起作用。
当我在 ajax 调用后添加以下代码时
$(".categorychk").each(function(){
$(this).removeAttr("checked");
});
注意:如果应用上面的代码没有明确的选中标记,那么使用之前选中的复选框可以正常工作。
【问题讨论】:
-
投反对票的人请评论投反对票。如果您不明白我的问题,请让我问。
-
投反对票的不是我……但我也不完全清楚。哪个位不起作用,“.each”循环或“清除所有选中标记”代码(您没有显示)?
-
使用
.prop操作属性。 -
$(".categorychk[data-id="+value+"]").attr("checked",true);应该是$(".categorychk[data-id="+value+"]").prop("checked",true); -
@ADyson 当我添加
removeAttr代码时,上述代码不起作用。
标签: javascript jquery ajax checkbox