Получить данные jQuery и использовать их как МАКСИМАЛЬНОЕ значение числового поля в laravel

#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); }