2014-10-20 127 views
0

我不知道這段代碼中的問題是什麼。按鈕onclick事件不會在javascript中觸發

有兩個輸入字段用於兩個變量的加,減,乘,除以及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); 
+0

檢查語法錯誤這裏的http:// jshint .com – elclanrs 2014-10-20 04:25:02

+0

他們是沒有方法的名稱,你已經給,並沒有呼籲按鈕點擊所有......那麼你如何期望按鈕點擊發生的事情? – 2014-10-20 04:27:42

+0

@SHEKHARSHETE沒有必要給方法名稱,我已經給了ID,所以當點擊與該ID相關的按鈕時,函數將被調用... – user3510922 2014-10-21 05:39:09

回答

2

你有一些錯誤和語法錯誤:

  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(){ 
 
\t f1= document.getElementById("f1").value * 1; 
 
\t f2= document.getElementById("f2").value * 1; 
 
\t result = f1+f2; 
 
\t alert("Result = "+result); 
 
} 
 
document.getElementById("sub").onclick=function(){ 
 
\t f1= document.getElementById("f1").value * 1; 
 
\t f2= document.getElementById("f2").value * 1; 
 
\t result = f1-f2; 
 
\t alert("Result = "+result); 
 
} 
 
document.getElementById("multi").onclick=function(){ 
 
\t f1= document.getElementById("f1").value * 1; 
 
\t f2= document.getElementById("f2").value * 1; 
 
\t result = f1*f2; 
 
\t alert("Result = "+result); 
 
} 
 
document.getElementById("div").onclick=function(){ 
 
\t f1= document.getElementById("f1").value * 1; 
 
\t f2= document.getElementById("f2").value * 1; 
 
\t result = f1/f2; 
 
\t 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>

+0

嘿@ROX!很高興看到「運行代碼」功能...... :) – 2014-10-20 04:40:46

0
  1. 得到具有語法問題

,易於固定

  • 什麼d o您是否打算在每次手術後對結果進行處理?
  • 有一個HTML元素及其內容設置爲它的價值

    +0

    嗨@Ed Heal!可能這會被添加爲評論,而不是回答正確嗎? – 2014-10-20 04:33:48

    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工作代碼賦值給變量就沒有必要使用返回關鍵字。同樣當你在每個按鈕中分別附加單擊事件時,你需要代碼來顯示結果。希望你能找到&糾正上面的其他功能。

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