2011-11-13 3 views
0

jQuery初心者は、ここに。私はこれを働かせることはできません。これは私が以前のラジオボタンに基づいてラジオボタンを無効にするために使用しているものです。別のラジオで無効になっている場合、単一のラジオボタンをオフにするにはどうすればよいですか?

$('document').ready(function() { 
    $('input[name="a"]').change(function() { 
     if($(this).val() == '1') { 
      $('input[name="b"]').removeAttr('disabled'); 
     } else { 
      $('input[name="b"][value="1"]').attr('disabled','disabled'); 
     } 
    }); 
}); 

と:

<input type="radio" name="a" value="1" /> A-1 
<input type="radio" name="a" value="2" /> A-2 

<input type="radio" name="b" value="1" /> B-1 
<input type="radio" name="b" value="2" /> B-2 

I-2をチェックするのであれば、B-1は無効になります。しかし、まずB-1にチェックを入れてからA-2をチェックしたら、B-1がチェックされないようにしたいと言います。それは仕事をしていませんが、私が最初に確認されていたという場合、それはまた、B-2のチェックを外し

if($('input[name="b"][value="1"]').is(':disabled')) { 
    $('input[name="b"][value="1"]').removeAttr('checked'); 
} 

:私はでこれを追加しようとしました。私はB-1にチェックを入れたくない。 (私はこれが意味をなさないことを願っています)

私は間違っていますか?

+0

あなたは常に他の無線が選択されている場合は、以前に確認され、ラジオボタンは、選択解除になりたいですか? –

答えて

0

私は過去に急いでそのような何かを学ばなければならなかった:トリックは、ラジオボタンのファミリーを作るです:

family NAME 
    child ID0 
    child ID1 
    child IDn 

あなたでは特定のケースを、あなたはこのような何かを探しているかもしれないが(性別):

<input type="radio" name="gender" id='male' value="M" > Male 
<input type="radio" name="gender" id='female' value"F" > Female 

そして、例えば、好き:

<input type="radio" name="likes" id='tv' value="TV" > Watchs TV 
<input type="radio" name="likes" id='radio' value="radio" > Listens to Radio 

あなたはラジオ尻の家族がいる場合には1つがクリックされると、もう1つは自動的にクリック解除されます。 ($(「#男性」)をクリックします:

次に、あなただけの

$('#male').is(':checked') .... $('#female').is(':checked') ..... 

のいずれかによって確認することができますそして、あなたは、また、それらのいずれかが無効になって起動したりしないか、これをクリックすることで、他のを無効にすることができます。 );

1
$('input[name="a"]').change(function() { 
    var $b = $('input[name="b"]'); 
    if (this.value == 1) { 
     $b.removeAttr('disabled'); 
    } 
    else { 
     $('input[name="b"][value="1"]:checked').removeAttr('checked'); // the selector behavior is funky here... 
     $b.attr('disabled', true); 
    } 
}); 

これは、必要に応じて機能します。

[値= "1"]セレクタに問題があります(チェックなしで使用すると)、jqueryバグのような臭いがあります。しかし、それについては心配しないでください。)

a little fiddle for you ^^

関連する問題