Обновление текстового поля обновляет ячейку таблицы (для каждой строки) - PullRequest
0 голосов
/ 16 сентября 2009

У меня есть таблица для добавления строк в смету для отправки моим клиентам, примерно такая:

<table>
    <thead>
        <tr>
            <th>Qty</th>
            <th>Kind</th>
            <th>Description</th>
            <th>Price</th>
            <th>Discount</th>
            <th>Tax</th>
            <th>Total</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><input type="text" name="qty[]" class="qty" /></td>
            <td><!-- select field with different kinds of services --></td>
            <td><input type="text" name="desc[]" /></td>
            <td><input type="text" name="price[]" class="price" /></td>
            <td><input type="text" name="discount[]" class="discount" /></td>
            <td><!-- select field with tax rates --></td>
            <td class="total"><!-- here goes the total amount (qty * price - discount) --></td>
        </tr>
    </tbody>
</table>

<span class="subtotal"><!-- the total amount (all lines together) --></span>

Если в input.qty, input.discount и input.price есть событие нажатия клавиши, необходимо обновить td.total для общей суммы в каждой строке. У меня есть функция, где я могу добавить несколько строк таблицы, следовательно, массив входных данных.

Итак, что мне нужно, когда поля ввода обновляются, jQuery должен обновить следующий td.total. Я пытался использовать оба метода: $ ('input.qty'). Keypress (function () {$ (this) .next ('td.total'). Html ()}), но это не сработало.

1 Ответ

2 голосов
/ 16 сентября 2009

Селектор $(this).next('td.total') является неисправным (поскольку td не является родственным элементом измененного входа) - попробуйте с помощью $('input.qty').keypress(function(){ $(this).next('td.total').html() })

[править]

На самом деле скрипт должен быть

$('input.qty').live ('keypress', function(){
    $(this).parent().siblings('.total').html()
});

[/ править]

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