在表单中提交自定义复选框的值

时间:2012-07-26 18:51:53

标签: jquery asp.net html asp.net-mvc-3

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

编辑:仅供参考,隐藏真实复选框

3 个答案:

答案 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");