繁体   English   中英

按钮onclick事件不会在javascript中触发

[英]Button onclick event doesn't fire in javascript

我不知道这段代码有什么问题。

有两个用于两个变量相加,相减,相乘和除法的输入字段和四个按钮(每个按钮分别用于相加,相减,相乘和除法),但是当我单击它们时,什么也没有发生。

<h1>Calculator</h1>
<input id="f1" />
<input id="f2" />
<button id="add">Add</button>
<button id="sub">Sub</button>
<button id="multi">Multi</button>
<button id="div">Div</button>
var f1, f2, result;
document.getElementById("add").onclick=function{
    f1= document.getElementById("f1").value;
    f2= document.getElementById("f2").value;
    result = return f1+f2;
}
document.getElementById("sub").onclick=function{
    f1= document.getElementById("f1").value;
    f2= document.getElementById("f2").value;
    result = return f1-f2;
}
document.getElementById("multi").onclick=function{
    f1= document.getElementById("f1").value;
    f2= document.getElementById("f2").value;
    result = return f1*f2;
}
document.getElementById("div").onclick=function{
    f1= document.getElementById("f1").value;
    f2= document.getElementById("f2").value;
    result = return f1/f2;
}
if(result!=null)
alert("Result = "+result);

您有一些错误和语法错误:

  1. function需要()

     onclick = function () {} 
  2. 在这种情况下,无需使用return ,只需将结果存储到变量中即可:

     result = f1+f2; 
  3. 您应该将文本框值转换为数字:

     f1 = document.getElementById("f1").value * 1; 
  4. 您应该在每个onclick显示结果,而不是在脚本末尾显示结果。

 var f1, f2, result; document.getElementById("add").onclick=function(){ f1= document.getElementById("f1").value * 1; f2= document.getElementById("f2").value * 1; result = f1+f2; alert("Result = "+result); } document.getElementById("sub").onclick=function(){ f1= document.getElementById("f1").value * 1; f2= document.getElementById("f2").value * 1; result = f1-f2; alert("Result = "+result); } document.getElementById("multi").onclick=function(){ f1= document.getElementById("f1").value * 1; f2= document.getElementById("f2").value * 1; result = f1*f2; alert("Result = "+result); } document.getElementById("div").onclick=function(){ f1= document.getElementById("f1").value * 1; f2= document.getElementById("f2").value * 1; result = f1/f2; alert("Result = "+result); } 
 <h1>Calculator</h1> <input id="f1" /> <input id="f2" /> <button id="add">Add</button> <button id="sub">Sub</button> <button id="multi">Multi</button> <button id="div">Div</button> 

请在下面找到工作代码

var f1, f2, result;
document.getElementById("add").onclick=function(){

f1= document.getElementById("f1").value;
f2= document.getElementById("f2").value;
result = f1+f2;

if(result!=null)
alert("Result = "+result);
}

将值分配给变量的Inorde无需使用return关键字。 同样,当您分别在每个按钮中附加每个按钮的click事件时,您需要代码来显示结果。 希望您能找到并纠正上述其他功能。

您的代码中有一些错误:
1-您正在返回价值,但永远不会使用它。
2-您的函数定义需要()
3-yo应该将输入值转换为int
那么这对你有用

var f1, f2, result;
document.getElementById("add").onclick=function(){
    f1= document.getElementById("f1").value;
    f2= document.getElementById("f2").value;
    result = parseInt(f1)+parseInt(f2);
    if(result!=null)
        alert("Result = "+result);
}
document.getElementById("sub").onclick=function(){
    f1= document.getElementById("f1").value;
    f2= document.getElementById("f2").value;
    result = parseInt(f1)-parseInt(f2);
    if(result!=null)
        alert("Result = "+result);
}
document.getElementById("multi").onclick=function(){
    f1= document.getElementById("f1").value;
    f2= document.getElementById("f2").value;
    result = parseInt(f1)*parseInt(f2);
    if(result!=null)
        alert("Result = "+result);
}
document.getElementById("div").onclick=function(){
    f1= document.getElementById("f1").value;
    f2= document.getElementById("f2").value;
    result = parseInt(f1)/parseInt(f2);
    if(result!=null)
        alert("Result = "+result);
}
<!doctype html>
<html>
<head>
<title>Javascript</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />  
</head>
<body>
<h1>Calculator</h1>
<input id="f1" />
<input id="f2" />
<button id="add">Add</button>
<button id="sub">Sub</button>
<button id="multi">Multi</button>
<button id="div">Div</button>
<script type="text/javascript">
var f1, f2, result;
document.getElementById("add").onclick = function () {
    f1 = parseFloat(document.getElementById("f1").value);
    f2 = parseFloat(document.getElementById("f2").value);
    result = f1 + f2;
    showResult();
}
document.getElementById("sub").onclick = function () {
    f1 = parseFloat(document.getElementById("f1").value);
    f2 = parseFloat(document.getElementById("f2").value);
    result = f1 - f2;
    showResult();
}
document.getElementById("multi").onclick = function () {
    f1 = parseFloat(document.getElementById("f1").value);
    f2 = parseFloat(document.getElementById("f2").value);
    result = f1 * f2;
    showResult();
}
document.getElementById("div").onclick = function () {
    f1 = parseFloat(document.getElementById("f1").value);
    f2 = parseFloat(document.getElementById("f2").value);
    result = f1 / f2;
    showResult();
}
function showResult() {
    alert("Result = " + result);
}
</script>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM