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 11:41

Работа и инпутами и цифрами в цикле
 
Простейший вопрос ввел меня в ступор. Поиском ничего похожего не нашел. Даже не знаю, как вопрос сформулировать. Новичок в JS, что скажешь.

Динамически на страницу выводится таблица.
В каждой строке в первой ячейке цифра, во второй инпут.
Выводится циклом for ( var i=0; i < data.lenght ; $i++)

Везде есть id. У цифры, скажем - id="num" + i, У импута - id="inp" + i.
Инпут еще в диве и имеет класс class="inpt".
Привожу очень упрощенно.

Jquery надо сделать функцию, чтобы при введении в инпут числа, оно перемножалось на уже имеющееся число в поле num той же строки.

Функция такая:
$('div').on('change paste keyup', 'input.inpt', function() {
    //Вот здесь с введенным значением в поле инпут все понятно.
    //А как получить как значение i, чтобы перемножить на цифру именно нужной строки, подставив в id значение i?

    });

Не знаю, правильно ли объяснил, что мне надо.

sanmihan 15.09.2015 12:04

Как вариант
$('div').on('change paste keyup', 'input.inpt', function() {
    //Вот здесь с введенным значением в поле инпут все понятно.
    var i = this.id.replace("inp", "")
    ...
});

Эдди 15.09.2015 12:12

Цитата:

Сообщение от sanmihan (Сообщение 388683)
Как вариант
$('div').on('change paste keyup', 'input.inpt', function() {
    //Вот здесь с введенным значением в поле инпут все понятно.
    var i = this.id.replace("inp", "")
    ...
});

Правильно понял? Вырезаем значение переменной из id?
В принципе, я только этот вариант и видел.
Но решил, что криво будет.
Должно же быть "красивое" решение. :)

sanmihan 15.09.2015 12:27

Цитата:

Сообщение от Эдди
Правильно понял? Вырезаем значение переменной из id?

Да правильно.
Есть вариант добавит инпутам атрибут, и тогда доставать значение из этого атрибута.

Эдди 15.09.2015 12:32

Цитата:

Сообщение от sanmihan (Сообщение 388691)
Да правильно.
Есть вариант добавит инпутам атрибут, и тогда доставать значение из этого атрибута.

Какой атрибут? Может, в name забить цифери? :)
Благо name не использую в этом скрипте.
Есть еще вариант в value забить переменную.
А в функции в самом начале ее вынуть и обнулить инпут до выполнения других действий.
Вот это более красиво. Нет?

Ща профессора придут и нам по шее надают за такие изголения. :)

рони 15.09.2015 12:47

Цитата:

Сообщение от Эдди
перемножалось на уже имеющееся число в поле num той же строки

а куда результат умножения?

Эдди 15.09.2015 13:02

Цитата:

Сообщение от рони (Сообщение 388698)
а куда результат умножения?

В то же после с тем же числом. Приращивание числа.
Потом оттуда забирать буду.

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

рони 15.09.2015 13:35

Эдди,
не осилил.

Эдди 15.09.2015 13:37

Цитата:

Сообщение от рони (Сообщение 388713)
Эдди,
не осилил.

Ну так вопрос не в том, куда результат.
ВОпрос в том, как лучше передать переменную, прилепленную к id или другому атрибуту в функцию.
И вообще как это надо делать.

рони 15.09.2015 13:39

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


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