2010-11-20 11 views
0

私はユーザーがフィールドに値を入力できるWebページを持っています。ユーザーがフィールドを更新すると、ユーザーに表示された合計を自動的に更新する必要があります。入力フィールドが動的に生成されるので、私は "update"というJavaScript関数を作成しました。私のコードのサンプルは、ここに示されている:JavaScriptの書式番号

<input type="text" id="myField1" onchange="return update(this);" /> 
<input type="text" id="myField2" onchange="return update(this);" /> 
<span id="totalCount"></span> 

var total = 0; 
function update(e) { 
    var v = $(e).val(); 
    if (parseInt(v) != NaN) { 
    total = total + v; 
    $("#totalCount").html(total);  
    } 
    return false; 
} 

ユーザが「2」に「myField1」、「02」が「totalCountプロパティ」要素に表示されている入るとき。実際には、「2」だけを表示したいと思います。アカウントの奇妙なエントリを取って、JavaScriptでこれを行うにはどうすればいいですか?

ありがとうございます!

+0

入力すると、「00」または「0」が表示されますか? – Marko

答えて

4

$(e).val()は文字列なので、total + vも文字列です。 parseIntを使用するだけでなく、値を使用する場合も値を使用してください。

var v = parseInt($(e).val(), 10); 
if (!isNaN(v)) { 
    total = total + v; 
    $("#totalCount").html(total); 
} 
+2

また、 'NaN!= NaN'はtrueを返します。isNaN(v); –

+0

@Ivo Wetzel:ありがとう、それを修正しました。 – Gumbo

+0

@ Gumbo、もし彼が10進数を入力するとどうなりますか、例えば2.15でしょうか? – Marko