Javascript добавление целых чисел - PullRequest
3 голосов
/ 27 января 2011

Как мне добавить простое целое число к другому целому числу в 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);

, тогда значение total имеет значение (целочисленное значение).

Ответы [ 2 ]

5 голосов
/ 27 января 2011

Проблема в том, что вы выполняете сложение , читая входное значение при каждом вводе ключа. Если пользователь, например, нажимает 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();
};

Здесь, если вы читаете входное значение, которое не может быть преобразовано в число, вы просто полностью возвращаете функцию.

1 голос
/ 09 декабря 2014

Вот 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...