.prop对单选按钮的行为有何不同?

时间:2017-05-11 08:59:54

标签: jquery

当我尝试使{* 3}}使用单选按钮时,我无法使其正常工作。在阅读了几个答案后,我意识到我必须遗漏一些非常明显的东西。我试图这样做,以便当我点击收音机Others时,它应该启用输入表单。我读到某个地方禁用required上的输入表单规则,这对我正在尝试做的事情来说是完美的;也是我不想简单地显示/隐藏的原因。我很困惑为什么选择没有正确发生。它this fiddle。这是片段:

$('#ctypeother').on('click', function() {
  if ($(this).is(':checked')) {
    $('#ctypeotherwhat').prop('readonly', true);
    $('#ctypeotherwhat').prop('disabled', false);
    //alert('checked');
  } else {
    $('#ctypeotherwhat').prop('readonly', true);
    $('#ctypeotherwhat').prop('disabled', true);
    //alert('not checked');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="ctype" value="A" /><label>A </label>
<input type="radio" name="ctype" value="B" /><label>B </label>
<input type="radio" name="ctype" value="C" /><label>C </label>
<input type="radio" name="ctype" value="D" id="ctypeother" />
<label>Other </label>
<input type="text" class="form-control" name="ctypeother" id="ctypeotherwhat" placeholder="Please Specify" />

1 个答案:

答案 0 :(得分:1)

未正确触发未检查的事件。相反,使用这个:

&#13;
&#13;
$('input[type="radio"]').on('click', function() {
  if ($("#ctypeother").is(':checked')) {
    $('#ctypeotherwhat').prop('disabled',false);
  } else {
    $('#ctypeotherwhat').prop('disabled',true);
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="ctype" value="A" /><label>A </label>
<input type="radio" name="ctype" value="B" /><label>B </label>
<input type="radio" name="ctype" value="C" /><label>C </label>
<input type="radio" name="ctype" value="D" id="ctypeother" />
<label>Other </label>
<input type="text" class="form-control" name="ctypeother" id="ctypeotherwhat" placeholder="Please Specify"/>
&#13;
&#13;
&#13;