错误:未处理的异常最大调用堆栈大小超过

时间:2018-02-05 17:19:51

标签: javascript

我写了一个简单的代码:当选中复选框时,显示警告,否则显示另一个警报。

function test() {
  if (this.view.checkBoxAgree.onSelection() === true) {
    alert("okay");
  } else {
    alert("cancel");
  }
}

但是,我收到了一个错误:

  

超出未处理的异常最大调用堆栈大小。

我想这与Eea6有关,但我对es6不太了解。

1 个答案:

答案 0 :(得分:2)

看起来您正在使用事件onSelection,这会创建一个最终溢出堆栈的循环。相反,您应该使用checked之类的属性。发布您的HTML代码,以便我们为您提供帮助,因为我们不了解this.view.checkBoxAgree。以下是使用类似于您的层次结构中的标准表单和复选框的方法:



function test() {
  if (this.view.checkBoxAgree.checked === true) {
    alert("okay");
  } else {
    alert("cancel");
  }
}

<form name="view">
  <input type="checkbox" id="checkBoxAgree" onclick="test();" /> Agree
</form>
&#13;
&#13;
&#13;

或者,您可以使用JavaScript而不是HTML来连接事件,并使用this直接访问复选框,如下所示:

&#13;
&#13;
document.getElementById("checkBoxAgree").addEventListener("click", function() {
  if (this.checked === true) {
    alert("okay");
  } else {
    alert("cancel");
  }
});
&#13;
<form name="view">
  <input type="checkbox" id="checkBoxAgree" /> Agree
</form>
&#13;
&#13;
&#13;