1
$(document).ready(function (){
$(function(){
    $('input:checkbox').prop('checked', false)
    $('input:checkbox').click(function(){
        if($(this).is(':checked')){
            $('input:checkbox').not(this).prop('checked', false);        
        }
    });
})
showdiv();

});

上記のコードは素晴らしいです!! 最初にすべてのチェックボックスを「オフ」にし、次に「1つの」チェックボックスのみを一度にチェックできるようにします。

しかし...私はそれが下の3つのチェックボックスだけに影響を与える必要があります!ページのすべてのチェックボックスではありません!!! IDのco33、co34、co35だけをターゲットにする方法がわからないと思います。

<input name="option[13]" id="co33" value="33" checked="checked" onclick="showdiv()" type="radio"> 
<input name="option[14]" id="co34" value="34" checked="checked" onclick="showdiv()" type="radio">  
<input name="option[15]" id="co35" value="35" checked="checked" onclick="showdiv()" type="radio"> 

その後!!!...これらのいずれかがチェックされている場合、この4番目のチェックボックスもチェックされます!! 上記の3つのうちどれもチェックされていない場合、これもチェックされていません!

<input id="a1" type="checkbox" onclick="showdiv()" name="add[1]">

正しく出てきたことを願っています..htmlが自動的に作成されるので、すべてのIDを同じにすることもクラスを追加することもできないので、ID名でターゲットにできるかどうかを確認しています..率直に言って、作成できるだけでも3つのチェックボックスだけを有効にするために最初に投稿されたコードは素晴らしいでしょう。3つのうちの1つがチェックされている場合に4番目のチェックボックスをチェックするのはボーナスです!

4

4 に答える 4

1

ラジオとチェックボックスを混同しています。また、DOM Ready イベント内に DOM Ready イベントをラップしています。どうぞ:

$(function(){
    $('input:checkbox').prop('checked', false);
    $('input:radio').prop('checked', false).filter(function(e){
        return (this.id == 'co33' ||
                this.id == 'co34' ||
                this.id == 'co35');
    }).on('click', function(){
        if($(this).is(':checked')){
            $('input:radio').not(this).prop('checked', false);
            $('#a1').prop('checked', true);
        }        
    });
    showdiv(); 
});

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

于 2013-03-13T05:24:46.980 に答える
0

属性セレクターを使用して名前でターゲットを設定できます。それほど効率的ではありませんが、機能し、おそらく十分に機能します。すべてを次のように変更するだけ$('input:checkbox')です。

$('input[name="option[13]"], input[name="option[14]"], input[name="option[15]"]')

そして、クリックハンドラーの最後(ifの外側)で、次のようにします。

$('#a1').prop(
    "checked",
    $('input[name="option[13]"], input[name="option[14]"], input[name="option[15]"]')
       .is(':checked')
);

編集:実際、私は関心のあるグループのIDに気づきました。それらをヒットする方が速い(そして入力が少ない)でしょう。セレクターを使用します。

$('#co33, #co34, #co35')
于 2013-03-13T05:16:35.290 に答える
0

次のようなものを試してください

$(function(){
    var radios = $('input:radio[name^=option]').prop('checked', false)
    radios.click(function(){
        if($(this).is(':checked')){
            $('input:radio[name^=option]').not(this).prop('checked', false);        
        }

        $('#a1').prop('checked', radios.is(':checked'))
    });

    showdiv();
});

デモ:フィドル

于 2013-03-13T05:31:38.970 に答える
0

あなたの質問は

「しかし...下の3つのチェックボックスだけに影響を与える必要もあります!ページ上のすべてのチェックボックスではありません!!!IDのco33、co34、co35だけをターゲットにする方法がわからない..」

<input name="option[13]" id="co33" value="33" checked="checked" onclick="showdiv()" type="radio"> 
<input name="option[14]" id="co34" value="34" checked="checked" onclick="showdiv()" type="radio">  
<input name="option[15]" id="co35" value="35" checked="checked" onclick="showdiv()" type="radio"> 

上記の HTML マークアップがあり、HTMLthey are radio notで定義されていcheckboxます。

だから試してみてください

$('input:radio').attr('checked', false)
$('input:radio').click(function(){
    if($(this).is(':checked')){
        $('input:radio').not(this).attr('checked', false);        
    }
});
于 2013-03-13T05:19:22.830 に答える