2017-03-04 36 views
-1

開發人員工具/故障排除告訴我,計算器未在HTMLButtonElement.onclick處定義。除了我沒有得到答案,一切都有效。有人看到我做錯了嗎?我遵循一個例子,一個例子的作品。但不是我的代碼。我得到四個按鈕和兩個文本框,但是當我點擊按鈕時,沒有答案,文本框中有數字。未捕獲的ReferenceError:計算器未在HTMLButtonElement.onclick處定義

<!DOCTYPE html> 
     <html> 
     <head> 
      <title>oppg.3</title> 
     </head> 
     <body> 

     <input id="v1" type="text" style="width:5em;"/> 
     <button onclick="calculator.sum();"> + </button> 
     <button onclick="calculator.multiply();"> * </button> 
     <button onclick="calculator.div();">/</button> 
     <button onclick="calculator.mod();"> % </button> 
     <input id="v2" type="text" style="width:5em;"/> 
     <span id="result"> </span> 


     <script type="text/javascript"> 
    var Calculator = function(inp1,inp2,reslt) { 
     this.valinp1 = inp1; 
     this.valinp2 = inp2; 
     this.result = reslt; 
     if (!Calculator.prototype.sum) { 
      Calculator.prototype.sum = function() { 
      var value1 = Number(this.valinp1.value), 
       value2 = Number(this.valinp2.value); 

       this.result.innerHTML = 
       (!/[0-9]/.test(String(value1)) || !/[0-9]/.test(String(value1))) 
       : (value1 + value2); 
      }; 
      Calculator.prototype.multiply = function() { 
       var value1 = Number(this.valinp1.value); 
       var value2 = Number(this.valinp2.value); 
       this.result.innerHTML = 
       (!/[0-9]/.test(string(value1)) || !/[0-9]/.test(string(value1))) 
       :(value1*value2); 

      }; 
      Calculator.prototype.div = function() { 
       var value = Number(this.valinp1.value); 
       var value2 = Number(this.valinp2.value); 
       var restmp = value1/value2; 
       this.result.innerHTML = 
       (!/[0-9]/.test(String(value1)) || !/[0-9]/.test(String(value1)) || value2 === 0) 
       : restmp%1 ? restmp.toFixed(3) : restmp; 
      }; 
      Calculator.prototype.mod = function() { 
       var value1 = Number(this.valinp1.value); 
       var value2 = Number(this.valinp2.value); 
       var restmp = value1%value2; 
       this.result.innerHTML = 
       (!/[0-9]/.test(String(value1)) || !/[0-9]/.test(String(value1)) || value2 === 0) 
       : value1%value2; 

      }; 
      } 
     }; 
     calculator = 
     new Calculator (
      document.getElementById('v1'), 
      document.getElementById('v2'), 
      document.getElementById('result') 
     ); 
     </script> 


     </body> 
    </html> 
+1

給我們整個代碼,計算器包括在內。 – paqash

+1

因爲沒有叫做計算器的對象 - 猜你必須編寫它 –

+0

現在已經發布了整個代碼@paqash。 – Zappoh

回答

0

這是一個工作片段,您的驗證代碼中有一些拼寫錯誤和語法錯誤。

var Calculator = function(inp1,inp2,reslt) { 
 
     this.valinp1 = inp1; 
 
     this.valinp2 = inp2; 
 
     this.result = reslt; 
 
     if (!Calculator.prototype.sum) { 
 
      Calculator.prototype.sum = function() { 
 
      var value1 = Number(this.valinp1.value), 
 
       value2 = Number(this.valinp2.value); 
 

 
       this.result.innerHTML = 
 
       (!/[0-9]/.test(String(value1)) || !/[0-9]/.test(String(value1))) ? 'error' 
 
       : (value1 + value2); 
 
      }; 
 
      Calculator.prototype.multiply = function() { 
 
       var value1 = Number(this.valinp1.value); 
 
       var value2 = Number(this.valinp2.value); 
 
       this.result.innerHTML = 
 
       (!/[0-9]/.test(String(value1)) || !/[0-9]/.test(String(value1))) ? 'error' 
 
       :(value1*value2); 
 

 
      }; 
 
      Calculator.prototype.div = function() { 
 
       var value1 = Number(this.valinp1.value); 
 
       var value2 = Number(this.valinp2.value); 
 
       var restmp = value1/value2; 
 
       this.result.innerHTML = 
 
       (!/[0-9]/.test(String(value1)) || !/[0-9]/.test(String(value1)) || value2 === 0) 
 
        ? restmp.toFixed(3) : restmp; 
 
      }; 
 
      Calculator.prototype.mod = function() { 
 
       var value1 = Number(this.valinp1.value); 
 
       var value2 = Number(this.valinp2.value); 
 
       var restmp = value1%value2; 
 
       this.result.innerHTML = 
 
       (!/[0-9]/.test(String(value1)) || !/[0-9]/.test(String(value1)) || value2 === 0) ? 'error' 
 
       : value1%value2; 
 

 
      }; 
 
      } 
 
     }; 
 
     calculator = 
 
     new Calculator (
 
      document.getElementById('v1'), 
 
      document.getElementById('v2'), 
 
      document.getElementById('result') 
 
     );
<input id="v1" type="text" style="width:5em;"/> 
 
     <button onclick="calculator.sum();"> + </button> 
 
     <button onclick="calculator.multiply();"> * </button> 
 
     <button onclick="calculator.div();">/</button> 
 
     <button onclick="calculator.mod();"> % </button> 
 
     <input id="v2" type="text" style="width:5em;"/> 
 
     <span id="result"> </span>

相關問題