2011-01-27 3 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

Вы должны использовать JQuery .... нет, шучу ': D' –

+1

Я подозреваю, что есть больше кода участвует. Кажется, что нет ничего плохого в том, что вы опубликовали. Что еще изменит «общее»? – Pointy

ответ

5

Проблема заключается в том, что вы выполните добавление, прочитайте значение ввода на каждой клавиатуре. Если пользователь, например, нажимает BACKSPACE, чтобы очистить вход, значение будет пустой строкой, что приведет к NaN после parseInt. И как только у вас есть 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>

Приглашение от: http://www.ittutorials.in/source/javascript/scf4/addition-of-multiple-integers-using-javascript.aspx

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