簡體   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