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演示
- 使用
.is(':checked')
。 - 您必须将两个值与
==
进行比较。 - 当您使用像
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'); } });