2012-07-26 111 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()