#jquery #laravel
#jquery #laravel
Вопрос:
Привет, у меня есть этот скрипт jQuery, который захватывает определенную переменную laravel и устанавливает максимальное значение числового поля. чтобы я мог убедиться, что пользователь не сможет ввести больше значения переменной. Вот сценарий
var $limitQty = $('#product_name_1').val();
$('#product_name_1' $orderItem_id).on('mouseup keyup', function () {
$(this).val(Math.min({{$remainingDeliveries}}, Math.max(0, $(this).val())));
});
вот числовое поле
<input class="form-control qty_in" type='text' data-type="qty_in" id='qty_in_1' name='qty_in[]' data-max='{{$remainingDeliveries}}' onkeyup='check(this);' for="1"/>
они отлично работают
Теперь моя проблема в том, что у меня есть форма, но то же числовое поле, которому нужен этот скрипт, у которого другой источник данных. Данные поступают динамически из сценария автозаполнения 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);
$('#qty_out_' elementId).val(data.qty_out);
$('#product_id_' elementId).val(data.id);
}
});
});
Чего я пытаюсь достичь, так это, если возможно, я хочу получить значение из $ (‘#qty_in_’ elementId).val(data.qty_in); и поместить его в $(this).val(Math.min({{--- PUT HERE ---}}, Math.max(0, $(this).val())));
возможно ли это? Помогите мне, пожалуйста. Заранее большое вам спасибо!
Комментарии:
1. Какой идентификатор у вашего $ (this).val()
Ответ №1:
Вы можете добавить атрибут data в свой ввод и получить к нему доступ по своему усмотрению
select: function( event, ui ) {
...
$('#qty_in_' elementId).val(data.qty_in).data('max',data.qty_in);
}
Комментарии:
1. Привет @Paul, это все еще не препятствует использованию ввода большего, чем максимальное значение. возможно ли включить результат из $ (‘#qty_out_’ elementId).val(data.qty_out).data(‘max’,data.qty_out); в этот скрипт $(‘#qty_out_1’).on(‘нажатие клавиши мыши’, функция () { $(this).val(Math.min(500, Math.max(1, $(this). val()))); ?
Ответ №2:
У меня это работает.
выберите: функция (событие, пользовательский интерфейс) { … $(‘#qty_in_’ elementId).val(data.qty_in).prop(‘max’,data.qty_in); }