Jquery включить/отключить текстовое поле на основе радиообмена

На моей странице (jsp) у меня есть группа radioobutton и текстовое поле (которое первоначально отключено).

  • Когда пользователь нажимает на переключатель, текстовое поле должно быть включено
  • и когда пользователь нажимает на какой-либо другой переключатель, текстовое поле снова должно быть отключено.

Я могу включить флажок изначально отключен с кодом ниже.

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

Мои вопросы:

  • Но как я могу снова отключить текстовое поле?
  • Есть ли более простое решение с помощью jQuery?

рассматривает

Ответы

Ответ 1

Всегда отключите его (для каждого переключателя), затем снова включите его, если переключатель - это тот, который разрешает текстовое поле. Если пользователь не находится на машине, построенной в 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">

Ответ 2

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