2011-01-27 15 views
3

Javascriptで別の整数に単純な整数を追加するにはどうすればよいですか?Javascriptで整数を追加する

合計の値としてNaNが取得されています。

<script type="text/javascript"> 
var total = 0; 
document.getElementById("dds1").onkeyup = function() { 
    total = total + parseInt(this.value,10); 
    updateIt(); 

}; 

function updateIt() { 
//tofixed(2) 
    document.getElementById("mySpan").innerHTML = total; 
} 

しかし、私は次の操作を実行した場合:

total = parseInt(this.value,10); 

は、値(整数値)が合計。

+3

が....いいえ、ちょうど '冗談:D ' –

+1

私はより多くのコードがあることを疑います関与する。あなたが投稿したものに間違ったことはないようです。それ以外は「トータル」を変えますか? – Pointy

答えて

5

問題はは、すべてのキーアップで入力値を読み取るを実行することです。たとえば、ユーザーが入力を消去するためにBACKSPACEを押すと、値は空の文字列になり、parseIntの後にNaNが返されます。そして、いったんNaN(あなたのtotal変数に)があれば、もうそれを取り除くことはできません。入力値が数値として解析することができる場合、最初のチェック、ここで

document.getElementById('dds1').onkeyup = function() { 

    var value = parseInt(this.value, 10); 

    if (!isNaN(value)) { 
     total += value; 
     updateIt();  
    } 

}; 

はこれを試してみてください。そうでない場合は、無視します。


それを行うための別の方法は、このようになります:ここで

document.getElementById('dds1').onkeyup = function() { 
    var value = parseInt(this.value, 10); 

    isNaN(value) && return; 

    total += value; 
    updateIt(); 
}; 

あなたは数に変換することができない入力値を読めば、あなただけの完全に機能を返します。

+0

+1良い分析。 – Phrogz

1

ここに整数を追加するJavaScriptがあります。 良いことは、空白の場合でもエラーをスローしないことです。

Javascriptを

から呼ば

<script language="javascript" type="text/javascript"> 
 

 
    function Add() { 
 
    var a, b, c, d; 
 
    a = parseInt(document.getElementById("txtFirstValue").value); 
 

 
    // 
 
    // If textbox value is null i.e empty, then the below mentioned if condition will 
 
    // come into picture and make the value to '0' to avoid errors. 
 
    // 
 

 
    if (isNaN(a) == true) { a = 0; } 
 
    var b = parseInt(document.getElementById("txtSecondValue").value); 
 

 
    if (isNaN(b) == true) { b = 0; } 
 
    var c = parseInt(document.getElementById("txtThirdValue").value); 
 

 
    if (isNaN(c) == true) { c = 0; } 
 
    var d = parseInt(document.getElementById("txtFourthValue").value); 
 

 
    if (isNaN(d) == true) { d = 0; } 
 
    document.getElementById("txtTotal").value = a + b + c + d; 
 
} 
 
</script> 
 

 
<!-- begin snippet: js hide: false --> 
 

 
HTML
First Value: <asp:TextBox ID="txtFirstValue" runat="server" 
 
         onKeyUp="javascript:Add();"></asp:TextBox> 
 

 
Second Value:<asp:TextBox ID="txtSecondValue" runat="server" 
 
         onKeyUp="javascript:Add();"></asp:TextBox> 
 

 
Third Value:<asp:TextBox ID="txtThirdValue" rrunat="server" 
 
         onKeyUp="javascript:Add();"><asp:TextBox> 
 

 
Fourth Value:<asp:TextBox ID="txtFourthValue" runat="server" 
 
         onKeyUp="javascript:Add();"></asp:TextBox> 
 

 
Total = <asp:TextBox ID="txtTotal" runat="server" MaxLength="20" BackColor="#FFE0C0" 
 
         Enabled="False" Font- Font-Bold="True" Font-Size="X-Large"> 
 
      </asp:TextBox>

:あなたはjQueryのを使用する必要がありますhttp://www.ittutorials.in/source/javascript/scf4/addition-of-multiple-integers-using-javascript.aspx

関連する問題