2012-04-27 28 views
0

スマートテンプレートから構築されたチェックボックスの配列があります。特定のチェックボックスがWTOPSの値で選択されている場合、div内の他のチェックボックスをすべて選択するようにします。 HTMLここJquery 1つのチェックボックスが選択されているときにすべてのチェックボックスを選択する

$("input[name=levelCheck]").change(function() { 
if ($("input[name=levelCheck]:checked").val() == 'WTOPS') { 
$("input[type='checkbox']").attr('checked', true); 
} 
}); 

されています:ここではこれを下回るここ

が動作していない私のコードは私のjqueryのです

<div id="Women"> 
<label> <input type="checkbox" name="level_desc[]" id="levelCheck" value="WOPEN"> Open </label> 
<label> <input type="checkbox" name="level_desc[]" id="levelCheck" value="WPREPOPT"> Prep Opt </label> 
<label> <input type="checkbox" name="level_desc[]" id="levelCheck" value="WTOPS"> TOPS </label> 
</div> 
+2

あなたの質問がありますか? –

+1

属性値を引用符でラップしていません... 'input [name = 'levelCheck']' - そのような引用符を追加してみてください... – Lix

+1

同じIDを持つ3つの入力があります - jQuery予期しない結果をもたらすでしょう。これはクラスにとってより良いケースです。 id値は常に*一意であるべきです。 –

答えて

1

あなたが持っているマークアップの秘訣、

0123マイケルが指摘したように、引用符を使用することが良く見える

$(function() { 
    $("input[name=level_desc\\[\\]]").change(function() {   
     if ($("input[name=level_desc\\[\\]]:checked").val() == 'WTOPS') { 
      $("input[type='checkbox']").attr('checked', true); 
     } 
    }); 
}); 

$(function() { 
    $("input[name='level_desc[]']").change(function() {   
     if ($("input[name='level_desc[]']:checked").val() == 'WTOPS') { 
      $("input[type='checkbox']").attr('checked', true); 
     } 
    }); 
}); 
+1

ugg ...私は私のコードでそれを見るのが好きではないでしょう... – Lix

+0

ベガに感謝、それはトリックでした。良い週末を! –

+0

クォートラップが必要な場合はスラッシュを使用しますか? –

0

あなた$("input[name=levelCheck]:checked")する必要があります行う必要がありますスクリプト以下$("input#levelCheck:checked")

0

はこれを試してみてください:

$("input#levelCheck").change(function() { 
if ($("input#levelCheck:checked").val() == 'WTOPS') { 
$("input[type='checkbox']").attr('checked', true); 
} 
}); 
1

は、特定のチェックボックスをターゲットにしてください - それらすべてを監視する必要はありませんが。

$("input[value=WTOPS]:not(:checked)").change(function() { 
    $("input[type='checkbox']").attr('checked', 'checked'); 
}); 

これは、WTOPSのチェックボックスがチェックされていない場合と、変更された場合に特に対象となります。その後、すべてのチェックボックスがチェックされます。質問はWTOPSボックスがオフの場合に未チェックにすべてのオプションを変更することについて話しませんでしたが、ここでそれを行うための方法です:あなたは属性値セレクタを使用し、これまであなたが引用符で値をラップする必要があります

$("input[value=WTOPS]").change(function() { 
    $("input[type='checkbox']").attr('checked', $("input[value=WTOPS]").val()); 
}); 
0

は、 - あなたはIDが複数回属性を使用していて、単一引用符で名前をラップする必要がname='levelCheck'

0

値をラップ

$("input[name='levelCheck']:checked"); 

注引用符。

HTML

<div id="Women"> 
<label> <input type="checkbox" name="level_desc[]" id="levelCheck1" value="WOPEN"> Open </label> 
<label> <input type="checkbox" name="level_desc[]" id="levelCheck2" value="WPREPOPT"> Prep Opt </label> 
<label> <input type="checkbox" name="level_desc[]" id="levelCheck3" value="WTOPS"> TOPS </label> 
</div>​ 

JS

$("input[name='level_desc[]']").change(function() { 
    if ($("input[name='level_desc[]']:checked").val() == 'WTOPS') { 
     $("input[name='level_desc[]']").attr('checked', true); 
    } 
}); 

DEMO
http://jsfiddle.net/ScMsX/

0

この

$("input[type='checkbox']").change(function() { 
    console.log($(this)); 
if ($(this).val() == 'WTOPS') { 
$("input[type='checkbox']").attr('checked', true); 
} 
}); 

チェックしてみてくださいここにhttp://jsfiddle.net/khqPj/

関連する問題