Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 15.09.2015, 19:09
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

рони. и так работает:
$('div').on('input', 'input.ser_n', function() { });
И так и так правильно?
Ответить с цитированием
  #22 (permalink)  
Старый 15.09.2015, 19:13
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

И последний вопрос новичка по моему случаю.
Цифра находится в ячейке таблицы <td>
Задавать id, чтобы работать с цифрой - это где надо задать id?
Не в ячейке же?
Правильно ли будет <span id="id" + i >?
Или обернуть цифру в div?
Напоминаю, таблица, где цифра, формируется динамически.

Последний раз редактировалось Эдди, 15.09.2015 в 19:22.
Ответить с цитированием
  #23 (permalink)  
Старый 15.09.2015, 19:37
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

В общем, сам допер.
Пофигу так id <td>, <span> или <div>.
Я пытался по val() вытащить цифру, а надо было по .html()...
Ответить с цитированием
  #24 (permalink)  
Старый 15.09.2015, 19:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Эдди
а надо было по .html()
или text()
Ответить с цитированием
  #25 (permalink)  
Старый 16.09.2015, 07:15
Аватар для sanmihan
Аспирант
Отправить личное сообщение для sanmihan Посмотреть профиль Найти все сообщения от sanmihan
 
Регистрация: 28.05.2015
Сообщений: 54

Сообщение от Эдди
$('div').on('input', 'input.ser_n', function() { });
И так и так правильно?
Можно и $("table").on('input', 'input.ser_n', function() { });
тогда обработчик будет только на таблицах, а не на всех дивах
Ответить с цитированием
  #26 (permalink)  
Старый 16.09.2015, 07:19
Аватар для sanmihan
Аспирант
Отправить личное сообщение для sanmihan Посмотреть профиль Найти все сообщения от sanmihan
 
Регистрация: 28.05.2015
Сообщений: 54

Как я понял рони намекал на то чтобы инпут выглядел примерно так <input oninput="something(i)"> или нет?
Ответить с цитированием
  #27 (permalink)  
Старый 16.09.2015, 07:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

sanmihan,

$('div input.ser_n').on('input',  function() { 
  alert(this.id.replace('serv_num','')); 
});

условно
было так

$('div input.ser_n').on('input', function() {
alert(нужная цифра);
});
Ответить с цитированием
  #28 (permalink)  
Старый 16.09.2015, 09:09
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Да. рони имел в виду 'change paste keyup' == 'input'.
Я заменил, и все ок.
А по первоначальному запросу использовал, как
sanmihan
ответил - replace. Тоже все работает.

ТОЛЬКО, С**КА, дублируются записи, потому умножение просхдодит три раза в таблицу.
Как там испольвать complete: не знаю. Рою интернет. Ничего путного не нашел.

Вообще странно. Таблица выводится один раз, а когда умножаю инпут на текст той же строки, умножается три раза.

Последний раз редактировалось Эдди, 16.09.2015 в 09:11.
Ответить с цитированием
  #29 (permalink)  
Старый 16.09.2015, 20:09
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

БЛН. Опять затык. Надеюсь, последний.

Напомню. В динамической таблице с перечислением услуг всем услугам присвоен класс 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 человека на вводимое кол-во людей
});
Ответить с цитированием
  #30 (permalink)  
Старый 16.09.2015, 21:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Эдди,
$('input.ser_n').on('input',  function() {

так пробовали?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер до требуемой даты в цикле Drugpunker Events/DOM/Window 22 21.03.2014 08:52
подвисание при $.ajax() в цикле amt779 jQuery 6 15.05.2013 11:55
Front-end разработчик, работа удаленная или в офисе(Нижний Новгород), фуллтайм. VadimZharko Работа 8 29.04.2013 09:03
popup окно в PHP цикле ryobi522 Общие вопросы Javascript 5 10.02.2012 02:18
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06