5

我正在尝试创建一个可重用的小型函数,该函数将在选中时禁用文本字段并插入默认值“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 感谢您提供的任何帮助!

4

2 回答 2

14

工作 jsFiddle 演示

  1. 使用.is(':checked').
  2. 您必须将两个值与 进行比较==
  3. 当您使用属性 likedisabled时,最好使用.prop()method 而不是.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');
    }
});

参考:

于 2013-05-29T06:29:31.213 回答
1

尝试这个

$('#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');
   }
 });
于 2013-05-29T06:29:24.850 回答