禁用已选中的字段

时间:2015-08-31 09:06:00

标签: javascript jquery html javascript-events

我正在尝试在检查复选框时禁用字段集中的2个选择字段。我也尝试了nullgetElementByIdgetElementsByTagName等方法,但它不起作用..

我希望在检查时将.attr()添加到disabled

fieldset

复选框:

<fieldset id="test" disabled>
    <div class="col-lg-6">
        <?php echo $this->Form->input('frequency_remarks'); ?>
    </div>
    <div class="col-lg-6">
        <?php echo $this->Form->input('duration_remarks'); ?>
    </div>
</fieldset>

剧本:

<div class="checkbox">
    <label for="CommentFrequencyOk">
        <input type="hidden" name="data[Comment][frequency_ok]" id="CommentFrequencyOk_" value="0" />
        <input type="checkbox" name="data[Comment][frequency_ok]" class="checkbox" value="1" id="CommentFrequencyOk" /> Frequency
    </label>
</div>

2 个答案:

答案 0 :(得分:5)

建议:

  1. 使用on('change')绑定事件,checked()无效事件
  2. 使用prop设置disabled状态
  3. 使用复选框的checked属性更改fieldset
  4. 的状态
  5. 你不能在jQuery对象上调用Vanilla Javascript方法,使用jQuery方法。防爆。在attr()
  6. setAttribute代替$('#test')

    &#13;
    &#13;
    $('#CommentFrequencyOk').on('change', function() {
      $('#test').prop('disabled', this.checked);
    });
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
    <fieldset id="test">
      <div class="col-lg-6">
        <input id="frequency_remarks" />
      </div>
      <div class="col-lg-6">
        <input id="duration_remarks" />
      </div>
    </fieldset>
    
    <div class="checkbox">
      <label for="CommentFrequencyOk">
        <input type="hidden" name="data[Comment][frequency_ok]" id="CommentFrequencyOk_" value="0" />
        <input type="checkbox" name="data[Comment][frequency_ok]" class="checkbox" value="1" id="CommentFrequencyOk" />Frequency
      </label>
    </div>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:1)

这应该这样做。现在,您只需插入选择字段ID而不是测试。

$('#CommentFrequencyOk').change(function() {
   $('#test').prop('disabled', $(this).prop('checked'));
});