JQuery Добавление новой строки в таблице на основе выбора, но последний выбор отменяет всю таблицу каждый раз

Я не очень хорош в Javascript Framework Я делаю этот проект в Laravel

если потребуется что-нибудь из этого кода, где он звонит, я предоставлю

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

Теперь эта строка содержит данные о выбранном проекте, его название, описание, цена и количество и сумма, когда он работает впервые.

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

Первый выбор изображения продукта
введите описание изображения здесь

Второе изображение Выбор другого продукта
введите описание изображения здесь

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

Заметка

Я устанавливаю значение в текстовом поле на основе уникальных классов, которые я назначил.

Код Jquery

$('.ProductClass').delegate('.Product','change', function () {
var inventory = $('.Product').html();
var qty=1;

var n = ($('.neworderbody tr').length - 0) + 1;
var tr = '<tr><td><input type="text" class="inventId form-control" name="inventId[]" readonly></td>' +

'<td ><input type="number" class="qty form-control"  name="qty[]" ></td>' +

'<td style="display: none;"><input type="text" class="costprice form-control" name="costprice[]" readonly></td>' +

'<td><input type="text" class="price form-control" name="price[]" readonly></td>' +

'<td><input type="text" class="amount form-control" name="amount[]" readonly></td>' +

'<td><span class="fa fa-trash delete" data-toggle="tooltip" data-original-title="Remove Item" value="x" style="margin-left: 36px;margin-top: 14px;"></span></td></tr>';
$('.neworderbody').append(tr);var tr = $(this).parent().parent();
var inventory = $('.Product option:selected').attr('data-name');
console.log(inventory);
var SalesPrice = $('.Product option:selected').attr('data-price');
var CostPrice = $('.Product option:selected').attr('cost-price');
var description = $('.Product option:selected').attr('data-pro');
$('.inventId').val(inventory);
$('.price').val(SalesPrice);

$('.qty').val(qty);
var qty = tr.find('.qty').val() - 0;
var price = tr.find('.price').val() - 0;

var total=qty*price;
tr.find('.amount').val(total);
//console.log(qty+"--------"+price);

});

Большое спасибо за помощь

0

Решение

Спасибо всем за вопрос

Я нашел решение для встраивания значения в текстовое поле, так что я просто взял значение переменных, а затем присвоил значение конкретному текстовому полю в таблице.

Отлично работает

Если у кого есть хорошее решение, поделитесь пожалуйста

Код

   $('.ProductClass').delegate('.Product','change', function () {
var inventory = $('.Product').html();
var qty=1;
var inventory=null;
var n = ($('.neworderbody tr').length - 0) + 1;
n=1;
var inventory = $('.Product option:selected').attr('data-name');
//onsole.log(inventory);
var SalesPrice = $('.Product option:selected').attr('data-price');
var CostPrice = $('.Product option:selected').attr('cost-price');
var description = $('.Product option:selected').attr('data-pro');
var total=qty*SalesPrice;

var tr = '<tr id="row">' +

'<td><input type="text" class="inventId form-control"  value='+inventory+' name="inventId[]" readonly /></td>'+

'<td > <input type="number" class="qty form-control"  value='+qty+' name="qty[]" > </td>' +

'<td style="display: none;"><input type="text" class="costprice form-control" name="costprice[]"  value='+CostPrice+' readonly></td>' +

'<td><input type="text" class="price form-control" name="price[]"   value='+SalesPrice+' readonly></td>' +

'<td><input type="text" class="amount form-control" name="amount[]"  value='+total+' readonly></td>' +

'<td><span class="fa fa-trash delete" data-toggle="tooltip" data-original-title="Remove Item" value="x" style="margin-left: 36px;margin-top: 14px;"></span></td>' +
'</tr>';
$('.neworderbody').append(tr);

});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]