2011-07-07 8 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'が今あなたが望むことをするべきだと読んだことがありますが、私のテストではそうではありません。私が何か間違っているかどうかはわかりません。 –