2011-07-07 67 views
1

我想根據是否檢查子項來更改背景顏色,並確定它是否具有HTML中的checked='checked'屬性。(jQuery)基於檢查屬性的不同結果

基本上,這就是我想要的:

  • 如果它默認爲選中(有checked='checked')和用戶unticks吧,紅色的背景
  • 如果它默認爲選中,但不再檢查(用戶綠色背景
  • 如果默認情況下未選中,並且用戶檢查它,藍色背景
  • 如果默認情況下它未被選中,並且用戶檢查並取消選中它,白色背景...

這是我到目前爲止有:

 
    $(document).ready(function(){ 
     $("#memberForm input").change(function() { 
      if($(this).is(":checked") == true) { 
       $(this).closest('dt').css({"background" : "green"}); 
      } 
      else { 
       $(this).closest('dt').css({"background" : "red"}); } 
     }); 
    });

我不知道如何在結果納入默認值...

回答

2

你可以添加一個類的所有檢查初始加載輸入:

$("input:checked").addClass("waschecked"); 

然後,只需檢查如果輸入有一流的說,如果它是在初始加載檢查:

$(this).hasClass("waschecked") 
+0

我認爲這將是最好的選擇。 – casraf

+0

這似乎更像是一個解決方案而不是實際的解決方案,但它看起來簡單而優雅。在決定答案之前,我會等待更多解決方案。謝謝! – Ryan

+0

隨着1.6和'prop'的引入,我已經讀過'attr'現在應該做你想做的事情,但是在我的測試中它並沒有。不知道我是否做錯了什麼。 –