0

賢いテンプレートから構築された一連のチェックボックスがあります。特定のチェックボックスが WTOPS の値で選択されている場合、このアクションで div 内の他のすべてのチェックボックスを選択します。以下は動作していない私のコードです

これが私のjqueryです:

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

HTMLは次のとおりです。

<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>
4

7 に答える 7

1

以下のスクリプトは、あなたが持っているマークアップのトリックを行う必要があります.

デモ

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

Michael が指摘したように、引用符を使用すると見栄えがよくなります。

$(function() {
    $("input[name='level_desc[]']").change(function() {        
        if ($("input[name='level_desc[]']:checked").val() == 'WTOPS') {
            $("input[type='checkbox']").attr('checked', true);
        }
    });
});
于 2012-04-27T19:44:13.290 に答える
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());  
});
于 2012-04-27T19:45:16.023 に答える
0

あなたの$("input[name=levelCheck]:checked")はず$("input#levelCheck:checked")

于 2012-04-27T19:43:35.180 に答える
0

これを試して:

$("input#levelCheck").change(function () {
if ($("input#levelCheck:checked").val() == 'WTOPS') {
$("input[type='checkbox']").attr('checked', true);  
}
});
于 2012-04-27T19:44:19.390 に答える
0

属性値セレクターを使用するときはいつでも、値を引用符で囲む必要があります -

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

値を囲む引用符に注意してくださいname='levelCheck'

于 2012-04-27T19:45:29.237 に答える
0

ID 属性を複数回使用しており、名前を一重引用符で囲む必要があります。

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);  
     }
});

デモ
http://jsfiddle.net/ScMsX/

于 2012-04-27T19:46:47.083 に答える
0

これを試して

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

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

于 2012-04-27T19:47:31.527 に答える