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

时间:2014-10-20 04:23:53

标签: javascript html calculator

我不知道此代码中的问题是什么。

有两个输入字段用于两个变量的加,减,乘和除以及4个按钮(每个用于加,减,乘和除),但是当我点击它们时没有任何反应。

<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);

4 个答案:

答案 0 :(得分:2)

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

  1. function需要()

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

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

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

  5. 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>

答案 1 :(得分:0)

请找到下面的工作代码

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事件时,您需要使用代码来显示结果。希望你能找到&amp;纠正上面的其他功能。

答案 2 :(得分:0)

您的代码中有一些错误:
1-你是返回价值但从不使用它。
2-你的功能定义需要()
3-哟应该将输入值转换为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);
}

答案 3 :(得分:0)

<!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>