2013-11-25 49 views
-5

我想做一個程序,可以總結給定數字中的所有數字。我希望我的腳本在點擊按鈕時返回結果請幫我在代碼中找到錯誤。由於這個簡單的JavaScript代碼有什麼問題?

<!doctype html> 
<html> 
<head> 
<script type="text/javascript"> 
function sumdigits() 
{ 
    var num=document.getElementById("a").value; 
    var len=num.length(); 
    alert(len); 

    if(len!=0) 
    { 
     var sum=0; 
     var ldigit=0; 

     while(num!=0) 
     { 
      ldigit=num%10; 
      sum+=ldigit; 
      num/=10; 
     } 
    } 
    document.getElementById("result").innerHTML="Sum of digits of the given number="+sum; 
} 
</script> 
</head> 

<body> 
    Enter a number: <input type="text" id="a" name="t1"><br/> 
    <input type="button" name="sub" value="Submit" onClick="sumdigits()"> 
    <div id="result">&nbsp;</div> 
</body> 
</html> 
+5

,如果你告訴我們發生了什麼事情錯了,它會有所幫助。 –

+2

長度()不是函數。你可能希望num.length –

+2

,而不是'num'是一個字符串,你試圖在數學運算中使用它? –

回答

0

DEMO

onClick應該是onclicklength()lengthsum沒有超出範圍

function sumdigits(){ 

    var num = document.getElementById("a").value; 
    var len = num.length; // note "length" 
    var sum;    // "sum" scope 
    alert(len); 

    if(len!==0){ 
     sum = 0; 
     var ldigit=0; 

     while(num!==0){ 
      ldigit=num%10; 
      sum += ldigit; 
      num /= 10; 
     } 
    } 
    document.getElementById("result").innerHTML="Sum of digits of the given number = "+ sum; 

} 

這是如何使其工作,現在,我不知道什麼數學你想申請在那裏,它的目的是什麼...

+0

謝謝@Roko C. Buljain糾正。基本上我犯了一個愚蠢的錯誤,或者你在計算變量num的長度的情況下說錯誤錯誤。謝謝 – DecodingLife

+0

@DecodingLife歡迎您,希望您能夠修復內部數學... –

0

腳本中斷的主要原因是因爲您在num變量而不是num.length上調用length()。下面是一個工作小提琴的鏈接,以及其他一些調整(檢查值是否是整數等)。

http://jsbin.com/uBAyOJep/1/

<!doctype html> 
<html> 
<head> 

</head> 

<body> 
    <form onsubmit="sumdigits()"> 
    Enter a number: <input type="text" id="a" name="t1"><br/> 
    <input type="button" name="sub" value="Submit" onClick="sumdigits()"> 
    <div id="result">&nbsp;</div> 
    </form> 
</body> 
</html> 

function sumdigits() 
{ 
    var sum = 0, 
     num = document.getElementById("a").value, 
     len = num.length, 
     result = document.getElementById("result"); 

    if(len !== 0){ 
     for(var i = 0; i < len; i++){ 
      var lineValue = parseInt(num[i], 0); 
      if (!isNaN(lineValue)) { 
       sum += lineValue; 
      } 
     } 
    } 

    result.innerHTML="Sum of digits of the given numbers = " + sum; 

} 
相關問題