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谢谢你提供的任何帮助!

Working jsFiddle Demo

  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文档

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

最新更新