1

我有一个带有自定义复选框图像的 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);
    }

编辑:仅供参考,真正的复选框是隐藏的

4

3 回答 3

3

尝试这样将其标记为已选中:

$("#realCheck").attr("checked", "checked");

像这样取消选中它:

$("#realCheck").removeAttr("checked");
于 2012-07-26T18:53:28.507 回答
3

来自 jQuery 文档prop。如果您使用的是 jQuery 1.6+

应该使用 .prop() 方法来设置禁用和检查,而不是 .attr() 方法。.val() 方法应该用于获取和设置值。

$("#realCheck").prop("checked", true);
$("#realCheck").prop("checked", false);

在此处阅读有关使用 .prop 与使用 .attr 的更多信息 .prop() 与 .attr()

于 2012-07-26T19:09:36.487 回答
1

Checked, 像disabled, 是二元属性,而不是属性。你需要使用:

$("#realCheck").attr("checked", "checked");
于 2012-07-26T18:54:07.333 回答