#jquery #laravel
#jquery #laravel
Вопрос:
Я работаю с формой, которая заполняется сценарием автозаполнения jQuery. Он заполняет код продукта, название продукта, количество и идентификатор. форма и скрипты работают очень хорошо. Моя проблема в том, что я понимаю, что мне нужно установить для результата jquery quantity значение атрибута MAX в моем числовом поле (поле количества), к сожалению, я только начал учиться кодировать в jQuery.
Вот строка из моей формы:
<tr>
<td><input class="form-control autocomplete_txt product_code" type='text' data-type="product_code" id='product_code_1' name='' for="1" required/></td>
<td><input class="form-control autocomplete_txt product_name" type='text' data-type="product_name" id='product_name_1' name='' for="1" required/></td>
<td><input class="form-control qty_in" type='number' data-type="qty_in" id='qty_in_1' name='qty_in[]' min='' max=''for="1" required/></td>
<input class="form-control product_id" type='hidden' data-type="product_id" id='product_id_1' name='product_id[]'/>
<input class="form-control" type='hidden' id='user_id' name='user_id' value='{{ auth()->user()->id }}' />
<td><button type="button" name="add" id="add" class="btn btn-success circle"><i class="fas fa-plus-circle"></i></button></td>
</tr>
Вот сценарий автозаполнения jquery
//autocomplete script
$(document).on('focus','.autocomplete_txt',function(){
type = $(this).data('type');
if(type =='product_code' )autoType='product_code';
if(type =='product_name' )autoType='name';
// if(type =='qty_in' )autoType='qty_in';
// if(type =='product_id' )autoType='id';
$(this).autocomplete({
minLength: 0,
source: function( request, response ) {
$.ajax({
url: "{{ route('searchStock') }}",
dataType: "json",
data: {
term : request.term,
type : type,
},
success: function(data) {
var array = $.map(data, function (item) {
return {
label: item[autoType],
value: item[autoType],
data : item
}
});
response(array)
}
});
},
select: function( event, ui ) {
var data = ui.item.data;
id_arr = $(this).attr('id');
id = id_arr.split("_");
elementId = id[id.length-1];
$('#product_code_' elementId).val(data.product_code);
$('#product_name_' elementId).val(data.name);
$('#qty_in_' elementId).val(data.qty_in);
$('#product_id_' elementId).val(data.id);
}
});
});
Моя проблема в том, как я могу установить data.qty_in в качестве МАКСИМАЛЬНОГО значения моего атрибута поля quantity number? Чтобы это не позволяло пользователю вводить сумму, превышающую data.qty_in, при вводе количества. заранее большое вам спасибо!
Комментарии:
1. Вы хотите запретить пользователю вводить сумму, превышающую
data.qty_in
, при вводе количества?2. Да, @Adam точно. как это будет возможно?
3. Вы можете предотвратить это, установив поле ввода как number: <тип ввода=»number» name = «quantity» min = «1» max = «5»> и: $ (‘#qty_in_’ elementId).attr(«max»,data.qty_in); Но это не может помешать кому-либо принудительно обновлять этот ввод, чтобы он был больше MAX, поэтому вам все равно потребуется некоторая проверка сервера…
4. Как насчет этого кода, <тип сценария = «текст / javascript»> var $orderItem_id = {{$order_item_id}}; $(‘#stock_in_qty_’ $orderItem_id).on (‘нажатие клавиши мыши’, функция () { $(this).val(Math.min({{$remainingDeliveries}}, Math.max(0, $(this) .вэл()))); }); </ скрипт> можем ли мы это переписать?