jQuery复选框,用于启用/禁用文本输入并添加/删除默认值

gla*_*ses 5 javascript checkbox jquery if-statement input

我正在尝试创建一个小的可重用函数,当选中该函数时,将禁用文本字段并插入默认值"160",当取消选中时,启用该字段并删除该值.我已经完成了它,但是未检查的部分让我失望了.

$('#chkIsTeamLead').change(function(){


   if ($('#chkIsTeamLead').checked = true){
      $('#txtNumHours').val('160').attr('disabled', 'disabled');
      console.log('checked');
   }

  if ($('#chkIsTeamLead').checked = false){
     $('#txtNumHours').val('').removeAttr('disabled');
     console.log('unchecked');
   }

});
Run Code Online (Sandbox Code Playgroud)

我把它设置为一个可重用的函数,传递给它的参数,但这给了我更多的麻烦,我希望参数是复选框,目标和值,最好链接到我当前的代码:http://codepen.io/AlexBezuska/pen/bwgsA 感谢您提供的任何帮助!

小智 13

工作jsFiddle演示

  1. 使用.is(':checked').
  2. 您必须将两个值进行比较==.
  3. 当您使用属性时disabled,最好使用.prop()方法而不是.attr().

$('#chkIsTeamLead').change(function(){
    if ($('#chkIsTeamLead').is(':checked') == true){
        $('#txtNumHours').val('160').prop('disabled', true);
        console.log('checked');
    } else {
        $('#txtNumHours').val('').prop('disabled', false);
        console.log('unchecked');
    }
});
Run Code Online (Sandbox Code Playgroud)

参考文献:

  • 我认为`== true`不是必要的,因为`if`会自行解决 (4认同)