我写了一个简单的代码:当选中复选框时,显示警告,否则显示另一个警报。
function test() {
if (this.view.checkBoxAgree.onSelection() === true) {
alert("okay");
} else {
alert("cancel");
}
}
但是,我收到了一个错误:
超出未处理的异常最大调用堆栈大小。
我想这与Eea6有关,但我对es6不太了解。
答案 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;
或者,您可以使用JavaScript而不是HTML来连接事件,并使用this
直接访问复选框,如下所示:
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;