0

我的表格是对数字求和,但我希望 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>
4

1 回答 1

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());
于 2013-05-18T07:35:58.717 回答