JQuery: 如果被选中则启用否则禁用

3

Fiddle - http://jsfiddle.net/XH5zm/
JSBin - http://jsbin.com/UKIweJE/1/edit

我正在尝试通过切换复选框的选中状态来启用/禁用输入文本框。

$(document).ready(function() {
  if ($('.enable-padding').attr('checked') === true) {
    $('.grab-padding').attr('enabled','enabled');
    $('.grab-padding').val("13px");
  } else {
    $('.grab-padding').attr('disabled','disabled');
    $('.grab-padding').val(" ");
  }
});

我到底做错了什么?
非常感谢任何帮助。
3个回答

5
  1. You don't listen to the change event.
  2. There is no enabled property.
  3. .attr() doesn't return a boolean value and it doesn't change the properties.

    $('.enable-padding').on('change', function() {
        $('.grab-padding').prop('disabled', !this.checked)
                          .val(this.checked ? "13px" : "");
    });
    

1

您需要为更改复选框状态添加一个事件:

$(document).ready(function() {
  $('.enable-padding').on('change',function(){
    if ($('.enable-padding').is(':checked')) {
    $('.grab-padding').removeAttr('disabled');
    $('.grab-padding').val("13px");
  } else {
    $('.grab-padding').attr('disabled','disabled');
    $('.grab-padding').val(" ");
  }
  });
});

并修改此输入:

<input class="grab-padding" type="text" value="13px"></td>

0
$('#chbox').click(function () {
  if ( $('#txt_data').attr('disabled') =='disabled' ){
      $('#txt_data').removeAttr('disabled');
  }else{
         $('#txt_data').attr('disabled','disabled');
  }

});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接