删除已禁用的属性,jquery无法在Chrome中运行

时间:2014-01-26 22:08:30

标签: javascript jquery button attributes prop

我正在尝试删除/添加禁用属性到我的按钮,其id为'register'。这是我尝试的代码,但它不起作用..

$(document).ready(function(){

 $('.tos').click(function(){
    var isChecked = $('.tos').is(':checked');
    if(isChecked)
      console.log("True");
      $('#register').removeAttr("disabled");
    else
      console.log("False");

  });

});

我在控制台中收到此错误,但我不知道这意味着什么。

Uncaught SyntaxError: Unexpected token else 

这是我想删除/添加禁用属性的按钮。

<button type="submit" id="register" name="register" class="btn btn-block btn-color btn-xxl" disabled>Create an account</button>

任何帮助将不胜感激!

5 个答案:

答案 0 :(得分:1)

不要忘记{...}

$('.tos').click(function(){
    var isChecked = $('.tos').is(':checked');
    if(isChecked){
      console.log("True");
      $('#register').removeAttr("disabled");
    } else {
      console.log("False");
    }
  });

答案 1 :(得分:1)

第一个身体周围没有大括号。应该是:

if(isChecked) {
      console.log("True");
      $('#register').removeAttr("disabled");
}
    else {
      console.log("False");
}

从技术上讲,第二组大括号是可选的,但值得使用它们

答案 2 :(得分:1)

  

未捕获的SyntaxError:意外的令牌

这是因为您在if语句中没有使用{}语法。不使用它们很好,但只有当你有一个行才能执行。在这种情况下,你的else是第二行,并打破了“只有一条没有大括号”的规则。

使用大括号:

if(isChecked) {
      console.log("True");
      $('#register').removeAttr("disabled");
} else
     console.log("False");

答案 3 :(得分:1)

if(isChecked)
  console.log("True");
  $('#register').removeAttr("disabled");
else
  console.log("False");
那是什么?


if(isChecked){
  console.log("True");
  $('#register').removeAttr("disabled");
}else{
  console.log("False");
}

现在这就是你正确的做法;)

答案 4 :(得分:1)

对于if else语句,您可以使用以下两种语法之一:

//either....
if (condition)
    one_action();
else
    one_other_action();
//or....
if (condition) {
    one_action()
    more_actions()
} else {
    one_other_action();
    and_some_more();
}

因此,如果条件包含单个操作,则可以省略条件为真时要执行的操作块周围的{} 。由于您正在执行console.log jQuery函数,因此if else语句被中断,并且JavaScript不再识别您在其中。因此,它不会看到else即将到来。为了完成这项工作,只需将{}放在其周围,就像其他答案所示。