新手在这里,我已经创建了这个javascript程序,当用户输入一个大于21的数字时,会弹出一个警告说他们是合法的,如果数字小于,则会弹出另一个警告说他们太年轻了。我不确定我是否正确使用onclick事件。但是当我点击按钮时没有任何反应,但是当我重新加载页面时,警报会弹出。不确定什么是错的,有什么建议吗?在此先感谢。
这是我的代码
var button = document.getElementById("button").onclick = legal();
function legal(){
var input = document.getElementById("input").value;
var age = 21;
if(input < age){
alert("Sorry, your not old enough");
}
else{
alert("Great, come on in! your legal");
}
}
<h1>
Are you Legal?
</h1>
<input type="number" id="input">
<button id="button" onclick="legal();">submit</button>
答案 0 :(得分:1)
在将其添加为侦听器的回调时,您可能无法执行该功能:
var button = document.getElementById("button").onclick = legal;
function legal(){
var input = document.getElementById("input").value;
var age = 21;
if(input < age){
alert("Sorry, your not old enough");
}
else{
alert("Great, come on in! your legal");
}
}
&#13;
<h1>
Are you Legal?
</h1>
<input type="number" id="input">
<button id="button" onclick="legal();">submit</button>
&#13;
从评论中编辑(由@Peter Van Drunen撰写):
通过在函数旁边放置括号,您将其转换为函数调用而不是函数引用。在分配处理程序时,您显然不想调用该函数,只能引用它。所以你需要的是没有括号的函数的名称。