2009-10-07 28 views
13

私のページ(jsp)には、ラジオボタングループとテキストボックス(最初は無効)があります。jqueryラジオボタンに基づいてテキストボックスを有効/無効にする

  • ユーザーがテキストボックスが
  • を有効にする必要があり、ユーザーが他のいくつかのラジオボタンをクリックしたときにテキストボックスが再び無効に得るべきであるラジオボタンをクリックするたびに。

以下のコードで、最初に無効になっているチェックボックスを有効にすることができます。

$("#DevGroup_OTHER").click(function(){   
    $("#otherDevText").attr("disabled",""); 
}) 

私の質問:

  • しかし、どのように私は再びテキストボックスを無効にすることができますか?
  • jQueryを使用すると簡単なソリューションがありますか?

に関して

答えて

32

常にラジオボタン、テキストボックスを可能にするものであれば、それを再度有効にするには、(すべてのラジオボタンなど)を無効にします。ユーザーが1980年に建設されたマシン上にいない限り、それは非常に速く、誰も知りません。

$('radio').click(function() { 
    $("#otherDevText").prop("disabled",true); 
    if($(this).attr('id') == 'enable_textbox') { 
     $("#otherDevText").prop("disabled",false); 
    } 
}); 

テキストボックスが有効になり、複数のラジオボタンがある場合は別の方法として、:

$('input:radio').click(function() { 
 
    $("#otherDevText").prop("disabled",true); 
 
    if($(this).hasClass('enable_tb')) { 
 
     $("#otherDevText").prop("disabled",false); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<fieldset id="DevGroup_OTHER"> 
 
    <input type="radio" id="d1" name="r1" value="d1">dev1 <br /> 
 
    <input type="radio" id="d2" name="r1" value="d2">dev2 <br/> 
 
    <input type="radio" id="d3" name="r1" value="d3" class="enable_tb"> enable 
 
</fieldset> 
 
<br /> 
 
<input id="otherDevText" name="tb1" disabled="disabled" 
 
     value="some Textbox value" type="text">

は意味をなさない?

+0

uファーリスに感謝、それはさらに良いです。 私の別の問題は、私は春を使用しているので、代わりに 私は すべてのラジオボタンを選択するアイデアを使用しています。 もう一度ありがとうございます。 –

+0

はいタグ名でセレクタが1つ見つかりました。 また、あなたのコードで$(this)と言うとき、そこには何がありますか?最初のセレクタ($( 'radio'))か2番目のもの($( "#otherDevText")) 私はいくつかのコマンドオブジェクト名を取得しています。 –

+0

私はSpring MVCに精通していませんが、jqueryがコードとやりとりする機会があると、要素は* 'になります。あなたの2番目の質問に対する答え: '$(this)'はクリックされた '$( 'radio')'要素を参照します。 – KyleFarris

7
$("#some_other_radiobutton").click(function(){ 
    $("#otherDevText").attr("disabled","disabled"); 
}); 
+0

ええ、今は他のすべてのラジオボタンのためにこのブロックを書く必要があります –

+0

他のすべてのラジオボタン "disables-text"にクラスを入れて、そのクラスにクリックハンドラーを接続してみませんか?ちょうど考え、私はjQueryの初心者です。 –

+0

これは良いアイデアです、ありがとうございます。他の簡単な方法? –

関連する問題