2012-07-26 98 views
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); 
    } 

编辑:FYI真正的复选框被隐藏

回答

3

尝试像这样将其标记为检查:

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

而且像这样取消它:

$("#realCheck").removeAttr("checked"); 
+0

现在不一样了。请参阅http://api.jquery.com/prop/ – Blazemonger 2012-07-26 19:11:04

1

Checked,如disabled,是一个二元属性,而不是属性。您需要使用:

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

从jQuery文档prop。这是如果你正在使用jQuery 1.6+

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

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

了解更多关于使用.prop VS使用.attr这里 .prop() vs .attr()