我有一个带有自定义复选框图片的div。它是一种形式。单击时,我将图像更改为“单击图像”。我还调整了一个复选框输入的值,该值将被提交给表单。问题是即使选中“真实”复选框的值,也始终将其提交为未选中。
if (fakeCheck.hasClass('btn-palette-checkbox')) {
fakeCheck.removeClass('btn-palette-checkbox');
fakeCheck.addClass('btn-palette-checkbox-unchecked');
$("#realCheck").attr("checked", false);
}
else {
fakeCheck.addClass('btn-palette-checkbox');
fakeCheck.removeClass('btn-palette-checkbox-unchecked');
$("#realCheck").attr("checked", true);
}
编辑:仅供参考,隐藏真实复选框
答案 0 :(得分:3)
请尝试将其标记为已选中:
$("#realCheck").attr("checked", "checked");
并且像这样取消选中它:
$("#realCheck").removeAttr("checked");
答案 1 :(得分:3)
来自jQuery docs prop。这是你使用jQuery 1.6 +
.prop()方法应该用于设置disabled和checked而不是.attr()方法。应该使用.val()方法来获取和设置值。
$("#realCheck").prop("checked", true);
$("#realCheck").prop("checked", false);
在此处阅读有关使用.prop与使用.attr的更多信息 .prop() vs .attr()
答案 2 :(得分:1)
Checked
一样, disabled
是二进制属性,而不是属性。你需要使用:
$("#realCheck").attr("checked", "checked");