Jquery 禁用文本区域后,取消选中复选框标记以启用文本区域

Jquery 禁用文本区域后,取消选中复选框标记以启用文本区域,jquery,Jquery,我使用Jquery来禁用和重新启用文本区域,这取决于是否选中复选框 我可以在选中复选框时禁用文本区域框,但在未选中复选框时无法启用它。以下是我当前的Jquery脚本: $('#business_closed').change(function(){ value = $(this).val(); console.log(value); if(value){ $('#open_hours').attr("disabled", "disabled"); } else{

我使用Jquery来禁用和重新启用文本区域,这取决于是否选中复选框

我可以在选中复选框时禁用文本区域框,但在未选中复选框时无法启用它。以下是我当前的Jquery脚本:

$('#business_closed').change(function(){
  value = $(this).val();
  console.log(value);

  if(value){
    $('#open_hours').attr("disabled", "disabled");
  }
  else{
    $('#open_hours').removeAttr("disabled");
  }
  return false;
});
基于
console.log(值),即使取消选中复选框,我的值始终为1。如何获取复选框的值(无论是否选中)


谢谢。

修改的代码:您应该使用选中的属性

$('#business_closed').change(function(){

  console.log(value);

  if(this.checked){
    $('#open_hours').attr("disabled", true);
  }
  else{
    $('#open_hours').attr("disabled", false);
  }
  return false;
});

在jQuery版本<1.6中使用
.attr()
时出现一些问题

因为它在页面呈现时提供了defaultCheck属性。因此,使用
.prop()
是一种很好的做法

if(value){
    $('#open_hours').prop("disabled", true);
  }
  else{
    $('#open_hours').prop("disabled", false);
  }

谢谢,这很有效。一旦StackOverflow让我:)对不起,我不明白你的最后一句话。你还有什么问题吗?这是一个很弱的双关语——一切正常。在规定的期限过后,我会将你的答案标记为正确。:)