Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Работа и инпутами и цифрами в цикле (https://javascript.ru/forum/dom-window/58317-rabota-i-inputami-i-ciframi-v-cikle.html)

Эдди 15.09.2015 14:08

Цитата:

Сообщение от рони (Сообщение 388716)
Эдди,
что мешает цифру сразу передать в функцию? когда вы формируите таблицу.
и никаких id и атрибутов не потребуется

Может, я правда ничего не понимаю. Или неверно обЪяснил.

На самом леле кроме двух ячеек есть еще и третья, с чекбоксом.
А также инпут, где указывается количество, скажем, товара.

Сначала формируется таблица товаров со стоимостью штуки.
Потом юзер чекбоксами выбирает нужные строки (товары) и стомость

1 штуки в поле num умножается на количество указанное количество.
(трудно со смартфона писать)

sanmihan 15.09.2015 14:44

если задать у каждого инпута уникальное имя в пределах строки, можно же получить родительский tr = $(this).closet("tr");
ну а остальные нужные поля $("input[name='имя поля']",tr)[0]

В общем логика такая, с помощью элемента с которого пришло событие определяем общего родителя для всех нужных элементов, с помощью родителя определяем нужные элементы\значения

рони 15.09.2015 14:50

Цитата:

Сообщение от Эдди
чекбоксом

чекбокс зачем? ноль штук значит не выбрал

рони 15.09.2015 14:50

sanmihan,
ненадо искать родителя если сам формируешь таблицу

Эдди 15.09.2015 15:04

Хм. Ща доеду, всеи попробую. Но чем так гемороиться, то лучше replace, если это не противоречит логике и правилам языка...

Эдди 15.09.2015 17:29

Цитата:

Сообщение от рони (Сообщение 388731)
чекбокс зачем? ноль штук значит не выбрал

Ну я ведь все упрощенно выше писал.
А вот набросок, что в конечном счете должно получиться.
Речь о нижней таблице доп. услуг.
Повторяю, это только набросок:

Эдди 15.09.2015 18:23

В общем, за отсутствием корректных вариантов (а я почти уверен, что такие существуют) сделал по первому ответу от sanmihan.
Это самый простейший вариант.
$('div').on('change paste keyup', 'input.ser_n', function() {
  alert($(this).attr('id').replace('serv_num',''));
});

Появится лучший вариант, изменю. Функция-то небольшая.
Спасибо всем!!!

рони 15.09.2015 18:51

Цитата:

Сообщение от Эдди
'change paste keyup'

== 'input'

Эдди 15.09.2015 18:56

Цитата:

Сообщение от рони (Сообщение 388768)
== 'input'

То есть заменить на input?
В поиске где-то читал, что, вроде, 'change paste keyup' не пропустит ни одного события.
Если я правильно понял, заменил на 'input', скрипт не работает. :(

'input.ser_n' - это класс. Не id, если это имеет значение.

ВСЕ РАБОТАЕТ с 'input'. Прошу прощения. Там кавычку удалил случайно.

рони 15.09.2015 19:03

Эдди,
а так ?
$('div input.ser_n').on('input',  function() {
  alert(this.id.replace('serv_num',''));
});


Часовой пояс GMT +3, время: 05:58.