【发布时间】:2021-09-05 12:15:49
【问题描述】:
我正在开发一个 B2B 订购应用程序,并且正在使用简单的选择/下拉菜单来提供要订购的产品,并根据需要使用 jquery 添加其他行 - 所有这些都运行良好。我现在已将 select 更改为 select2 以提供搜索。第一项工作正常,但如果您添加额外的行,它会提供 select2 框以及第一行的只读副本。见下图..
与 select2 下拉菜单相关的代码
@foreach (old('products', ['']) as $index => $oldProduct)
<tr id="product{{ $index }}">
<td>
<select name="StockItem[]" class="select2 form-control mb-3 custom-select" style="width: 100%; height:36px;" >
<option value="">-- choose product --</option>
@foreach ($products as $product)
<option value="{{ $product->id }}"{{ $oldProduct == $product->id ? ' selected' : '' }}>
{{ $product->StockItemName }} -
(R {{ !floatval($product->DiscountPercentage) ?
( !empty($product->UnitPrice) ? number_format($product->UnitPrice, 2) : number_format($product->SellingPrice, 2) )
: number_format($product->SellingPrice - (($product->DiscountPercentage / 100) * $product->SellingPrice), 2) }})
</option>
@endforeach
</select>
</td>
</tr>
@endforeach
jquery
$(document).ready(function(){
let row_number = {{ count(old('products', [''])) }};
$("#add_row").click(function(e){
e.preventDefault();
let new_row_number = row_number - 1;
$('#product' + row_number).html($('#product' + new_row_number).html()).find('td:first-child');
$('#products_table').append('<tr id="product' + (row_number + 1) + '"></tr>');
row_number++;
$('select').select2();
});
});
我假设我的问题是重新加载 select2 $('select').select2();
如果您保存此表单,则会保存正确的数据,而不会出现任何不必要的重复。
任何帮助将不胜感激
【问题讨论】:
-
为什么要在循环中使用选择标签?
-
可能是因为循环迭代而打印出来的。
标签: php jquery laravel jquery-select2