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

我正在尝试创建一个小的可重用函数,当选中该函数时,将禁用文本字段并插入默认值“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'); } }); 

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

工作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'); } }); 

参考文献:

  • .attr() – jQuery API文档
  • .prop() – jQuery API文档
  • .is() – jQuery API文档

试试这个

 $('#chkIsTeamLead').change(function(){ if ($('#chkIsTeamLead').is(':checked')){ $('#txtNumHours').val('160').attr('disabled', 'disabled'); console.log('checked'); } else { $('#txtNumHours').val(''); $('#txtNumHours').removeAttr('disabled'); console.log('unchecked'); } });