求和输入值并跳过其中一个jQuery

时间:2013-05-18 07:03:47

标签: jquery forms input html-table sum

我有一个数字总和的形式,但我希望jQuery跳过中间输入以进行求和。请帮忙我在这里发布代码。它肯定必须是输入标记,因为它将数据发送到PHP。我花了很多时间来解决这个问题,但我看不出问题。

的jQuery

    var total;
    $("input.amount").keyup(function() {
        total = 0;
        $(this).parents("table").find("input.amount").each(function() {
            total += parseInt($(this).val());
        }).end().find("span.total").html(total);
    });

HTML

  <form class="calc">
    Form 1
    <br />
    <table border="0">
        <tr>
            <td>
                Amount 1
            </td>
            <td>
                <input class="amount" type="text" />
            </td>
        </tr>
        <tr>
            <td>
                Amount 2
            </td>
            <td>
                <input class="amount" type="text" />
            </td>
        </tr>
        <tr>
            <td>
                Amount 3
            </td>
            <td>
                <input class="amount" type="text" />
            </td>
        </tr>
        <tr>
            <td>
                Total Amount
            </td>
            <td>
                <span class="total">0</span>
            </td>
        </tr>
    </table>
    </form>

1 个答案:

答案 0 :(得分:2)

只需更改HTML标记即可提供您希望忽略新类或data-*属性的输入。

<input class="amount ignored" type="text" />

然后检查.each()循环中的课程:

if(!$(this).hasClass('ignored'))
    total += parseInt($(this).val());

如果您沿着data- *路线走下去,可以使用:

<input class="amount" type="text" data-ignored="true" />

并检查确保数据属性已设置:

if(!$(this).data('ignored'))
    total += parseInt($(this).val());