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

时间:2013-05-29 06:21:26

标签: jquery if-statement input checkbox javascript

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

2 个答案:

答案 0 :(得分:13)

Working jsFiddle Demo

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

  4. $('#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');
        }
    });
    

    参考文献:

答案 1 :(得分: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');
   }
 });