2010-11-20 4 views
0

У меня есть веб-страница, которая позволяет пользователю вводить значения в поля. Когда пользователь обновляет поле, я хочу автоматически обновить общую информацию, отображаемую пользователю. Поскольку поля ввода динамически генерируются, я создал функцию 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» возвращает истинное использование isNaN (v); –

+0

@ Иво Ветцель: Спасибо, исправил его. – Gumbo

+0

@ Gumbo, что произойдет, если он вводит десятичную дробь, например, 2.15? – Marko

Смежные вопросы