JQuery включить / отключить текстовое поле на основе радиокнопки - PullRequest
13 голосов
/ 07 октября 2009

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

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

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

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

Мои вопросы:

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

привет

Ответы [ 2 ]

33 голосов
/ 07 октября 2009

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

Имеет смысл?

7 голосов
/ 07 октября 2009
$("#some_other_radiobutton").click(function(){
  $("#otherDevText").attr("disabled","disabled");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...