рони. и так работает:
$('div').on('input', 'input.ser_n', function() { }); И так и так правильно? |
И последний вопрос новичка по моему случаю.
Цифра находится в ячейке таблицы <td> Задавать id, чтобы работать с цифрой - это где надо задать id? Не в ячейке же? Правильно ли будет <span id="id" + i >? Или обернуть цифру в div? Напоминаю, таблица, где цифра, формируется динамически. |
В общем, сам допер.
Пофигу так id <td>, <span> или <div>. Я пытался по val() вытащить цифру, а надо было по .html()... :) |
Цитата:
|
Цитата:
тогда обработчик будет только на таблицах, а не на всех дивах |
Как я понял рони намекал на то чтобы инпут выглядел примерно так <input oninput="something(i)"> или нет?
|
sanmihan,
$('div input.ser_n').on('input', function() { alert(this.id.replace('serv_num','')); }); условно было так $('div input.ser_n').on('input', function() { alert(нужная цифра); }); |
Да. рони имел в виду 'change paste keyup' == 'input'.
Я заменил, и все ок. А по первоначальному запросу использовал, как sanmihan ответил - replace. Тоже все работает. ТОЛЬКО, С**КА, дублируются записи, потому умножение просхдодит три раза в таблицу. Как там испольвать complete: не знаю. Рою интернет. Ничего путного не нашел. Вообще странно. Таблица выводится один раз, а когда умножаю инпут на текст той же строки, умножается три раза. |
БЛН. Опять затык. Надеюсь, последний.
Напомню. В динамической таблице с перечислением услуг всем услугам присвоен класс ser_n. Каждая услуга имеет id="serv_num" + i (выводятся в цикле). Задача при вводе в инпут умножить число на стоимость услуги на 1 человека. Все умножается. Но поскольку услуги в данном случае 3, то умножается 3 раза. Как бы исправить функцию, чтобы умножение было только один раз. Конечно, можно сделать цикл с одной итерацией или прерыванием после первой итерации. Но криво будет, уверен. $('div').on('input', 'input.ser_n', function() { var $s = $(this).val(); //вводимое число var $x = $(this).attr('id').replace('serv_num',''); //порядковый номер услуги var $y = $('#serv_c' + $x).text(); //получаю стоимость услуги на 1 человека $('#serv_c' + $x).text($y * $s); //умножаю стоимость на 1 человека на вводимое кол-во людей }); |
Эдди,
$('input.ser_n').on('input', function() { так пробовали? |
Часовой пояс GMT +3, время: 07:45. |