Я хочу вычесть текстовое значение есть класс в JQuery - PullRequest
0 голосов
/ 07 марта 2011
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Sum of all TextBox values using jQuery</title>
    <script type="text/javascript"
    src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js">
    </script>
    <script type="text/javascript">
        $(function() {
            $("#addAll").click(function() {
                var add = 0;
                $(".amt").each(function() {
                    add -= Number($(this).val());
                });
                $("#para").text("Sum of all textboxes is : " + add);
            });
        });
    </script>
</head>
<body>
    <input id="Text1" class="amt" type="text" /><br />
    <input id="Text2" class="amt" type="text" /><br />
    <input id="Text3" class="amt" type="text" /><br />  
    <input id="addAll" type="button" value="Sum all Textboxes" /><br />
    <p id="para" />
</body>
</html>

но я не смог получить реальный результат. пожалуйста, помогите мне

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Попробуйте:

$(function() {
    $("#addAll").click(function() {
        var add = 0;
        $(".amt").each(function() {
            add += parseInt($(this).val() || 0, 10);
        });
        $("#para").text("Sum of all textboxes is : " + add);
    });
});

Использование parseInt. Кроме того, вы должны использовать +=, если вы пытаетесь суммировать значения.

Вот это работает: http://jsfiddle.net/S9H6A/

<ч />

Обновление: Если вы пытаетесь вычесть все значения в текстовых полях, то ваша проблема в том, что вы инициализируете итоговое значение равным 0. Вместо этого попробуйте что-то подобное (также добавлен код из @ Правин ответ, который использует || 0 по умолчанию пусто input с 0):

$(function() {
    $("#addAll").click(function() {
        var total;
        $(".amt").each(function() {
            if (typeof total === 'undefined') {
                total = parseInt($(this).val() || 0, 10);
            }
            else {
                total -= parseInt($(this).val() || 0, 10);
            }
        });
        $("#para").text("Sum of all textboxes is : " + total);
    });
});

Обновленный пример: http://jsfiddle.net/S9H6A/4/

0 голосов
/ 07 марта 2011

заменить это add -= Number($(this).val()); на add -= parseInt($(this).val()|| 0,10);

...