我试图创建一个小的可重用函数,当选中时,禁用文本字段并插入默认值'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谢谢你提供的任何帮助!
Working jsFiddle Demo
- 使用
.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文档
try this
$('#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');
}
});