似乎无法使onClick事件适用于我的提交按钮

时间:2018-02-23 16:16:30

标签: javascript if-statement

新手在这里,我已经创建了这个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>

1 个答案:

答案 0 :(得分:1)

在将其添加为侦听器的回调时,您可能无法执行该功能:

&#13;
&#13;
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;
&#13;
&#13;

从评论中编辑(由@Peter Van Drunen撰写):

通过在函数旁边放置括号,您将其转换为函数调用而不是函数引用。在分配处理程序时,您显然不想调用该函数,只能引用它。所以你需要的是没有括号的函数的名称。