禁用check_box_tag以在禁用后启用文本区域

时间:2012-10-18 19:51:15

标签: jquery

我正在使用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(value);,即使我取消选中复选框,我的值也始终为1。如何获取复选框的值(是否已选中)?

感谢。

2 个答案:

答案 0 :(得分:1)

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

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

  console.log(value);

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

答案 1 :(得分:1)

使用.attr()与jQuery版本相关的问题< 1.6。

因为它在页面呈现时给出了defaultCheck属性。因此,使用.prop()替代

是一种很好的做法
if(value){
    $('#open_hours').prop("disabled", true);
  }
  else{
    $('#open_hours').prop("disabled", false);
  }