Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   .change() при нескольких инпутах. (https://javascript.ru/forum/dom-window/38539-change-pri-neskolkikh-inputakh.html)

OD_RS 05.06.2013 21:25

.change() при нескольких инпутах.
 
Добрый день. Проблема в следующем.
Есть следующая ситуация :
Аналог корзины интернет магазина, в php циклом выводятся строки таблице. В каждой строке есть инпут типа
<input type="number" id="qty" min="1" value="'.$qty.'">
Необходимо при смене числа в инпуте, делать ajax запрос к скрипту. Подскажите, как реализовать это. Конкретнее - нашел вариант типа
$("[id=qty]").change(function() {
alert('Changed');
});
И прикрутить туда отсылку Ajax-а, но проблема в том, как узнать какой именно инпут изменился, и соответственно, на что он изменился. Заранее благодарю за любую помощь. Хотя бы пните, в каком направлении копать

vadim5june 05.06.2013 21:31

Цитата:

Сообщение от OD_RS
как узнать какой именно инпут изменился, и соответственно, на что он изменился.

this.id-id input
this.value-на что изменился
все это внутри функции change

OD_RS 05.06.2013 23:17

Т.е. надо каждому инпуту в цикле проставлять IDшник, и с помощью this.id определять?

vadim5june 05.06.2013 23:22

Цитата:

Сообщение от OD_RS (Сообщение 254677)
Т.е. надо каждому инпуту в цикле проставлять IDшник, и с помощью this.id определять?

У Вас же уже стоит id как я вижу
Вы напишите сразу функцию ajax будет понятно что Вам надо

OD_RS 06.06.2013 04:26

На данный момент ID у меня одинаковый, я так понимаю, что стоит выставлять ID динамический типа id="qty$i" и по нему опеределять инпут?

vadim5june 06.06.2013 14:02

Цитата:

Сообщение от OD_RS (Сообщение 254699)
На данный момент ID у меня одинаковый, я так понимаю, что стоит выставлять ID динамический типа id="qty$i" и по нему опеределять инпут?

Да я тоже так думаю

OD_RS 06.06.2013 14:16

Цитата:

Сообщение от vadim5june (Сообщение 254746)
Да я тоже так думаю

Спасибо большое за советы, все получилось )
Вышло такое чудо :
$("[name=qty]").change(function() {
        var attrid = $(this).attr("id");
        var changedto = $(this).val();
        $.ajax({
            type: "POST",
            url: "js.php?changeqty="+attrid+"&qty="+changedto,
        }).done(function( msg ) {
                window.location.reload();
            });
    });

Где attrid - состоит из IDа товара, qty из количества, и всё заработало )


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