Как заставить jAutoCal c работать на динамически добавленных элементах - PullRequest
1 голос
/ 01 апреля 2020

Позвольте мне объяснить, что я делаю: у меня есть таблица заказов, где я могу добавлять, удалять и редактировать заказы клиента. Все отлично работает для добавления и удаления. Но когда дело доходит до редактирования, у меня есть некоторые проблемы. Я занимаюсь извлечением данных из Базы данных (используя codeigniter) и отображением их в режиме редактирования, чтобы я мог затем редактировать их, если клиенты того пожелают. Информация Клиента (имя, адрес, состояние..et c) загружается нормально, но когда я загружаю его заказы продуктами и динамически добавляю их, используя (jQuery, ajax), поле Итого товара (которое вычисляет сумма заказов на продукт * (цена за единицу при использовании плагина jAutoCal c), похоже, не работает. Плагин работает просто отлично, когда я не добавляю данные динамически. Есть ли способ исправить это или добавить что-то, что заставит это работать? вот мой код

var thehtml = ''
for(i=0; i<data[1].length; i++){
    thehtml += 
              '<tr class=cmd'+id+'>'+
                 '<td>'+
                    '<select name="products" id="productselect>"'+
                        '<option data-price="39" value="1">Knife</option>'+
                        '<option data-price="3" value=2">Bottle</option>'+
                        '<option data-price="4" value="3">Pen</option>'+
                    '</select>'+
                 '</td>'+
                 '<td><input type="text" name="qty" value="39"></td>'+
                 '<td><input type="text" name="price" value="33"></td>'+
                 '<td><input readonly type="text" jAutoCalc="{qty} * {price}"/>'+ /// THIS DOESNT WORK IT'S DYNAMICALLY ADDED !!!!
                 '<button type="button" name="add" value="Add" class="tr_clone_remove  btn btn-danger">Remove</button>'+'</td>'+
              '</tr>;';
$(thehtml).insertAfter(itemselement); 

Обратите внимание, что все работает найти в не динамически добавленных элементах. Но всякий раз, когда я добавил эти таблицы динамически, ничего не работает! пожалуйста, помогите мне исправить это!

1 Ответ

1 голос
/ 01 апреля 2020

Когда вы добавляете элементы в DOM после того, как jAutoCalc уже инициализирован, плагин не знает о наличии новых элементов. Вам нужно инициализировать jAutoCalc для этих элементов.

Вы можете просто сделать что-то вроде

$(thehtml).jAutoCalc();

после добавления новых строк.

Если это не так не работает, попробуйте

$('form').jAutoCalc();

Все зависит от вашей HTML структуры, но вам просто нужно переинициализировать ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...