У меня есть форма, в которой динамическая строка генерируется при каждом поиске продукта без каких-либо проблем, но при сохранении формы, если моя проверка не проходит, обновляется страница, и все строки, которые я добавил, динамически удаляются.
IЯ пытался восстановить старый ввод этой строки, используя 'старый' помощник Laravel, но все равно не восстанавливает его.
HTML:
<div class="table-responsive">
<form action="{{ route('save') }}" method="POST">
<table class="table table-bordered table-condensed" id="mytable">
<div class="row">
<div>
<input type="text" id="search" class="form-control">
</div>
<div>
<button type="button" name="add" id="add" class="btn btn-success">Add Row</button>
</div>
</div>
<thead>
<tr>
<th>Product</th>
<th>Qty</th>
<th>Price</th>
<th>Action</th>
</tr>
</thead>
<tr>
</table>
<input type="button" name="submit" id="submit" class="btn btn-info" value="Submit" />
</form>
</div>
Скрипт:
$('#search').on('keydown', function(e) {
if(e.which == 13){
var proid = $("#search").val();
//alert(proid);
$.ajax({
url: '{{ URL::to('search-product/')}}'+"/"+ proid,
type: "Get",
dataType:"json",
success: function (response)
{
var trHTML = '';
$.each(response, function (i, item) {
trHTML += '<tr>' +
'<td><input type="text" name="name[]" class="form-control nameclass"value="' + item.name + '" /></td>' +
'<td><input type="text" name="qty[]" class="form-control qtyclass "value="' + '1' + '" /></td>' +
'<td><input type="text" name="price[]" class="form-control priceclass" value="' + item.price + '" /></td>' +
'<button><button type="button" class="btn btn-danger remove-tr">Remove</button></button>' +
'</tr>';
});
$('#mytable').append(trHTML);
}
});
}
});
ВводСценарий восстановления:
var nameclassOldValue = '{{ old('name[]') }}';
if(nameclassOldValue !== '') {
$('.nameclass').val(nameclassOldValue );
$('.nameclass').change();
}
var qtyclassOldValue = '{{ old('qty[]') }}';
if(qtyclassOldValue !== '') {
$('.qtyclass').val(qtyclassOldValue );
$('.qtyclass').change();
}
var priceclassOldValue = '{{ old('price[]') }}';
if(priceclassOldValue !== '') {
$('.priceclass').val(priceclassOldValue );
$('.priceclass').change();
}
После сбоя проверки строки должны остаться с текущим вводом.