Есть ли ошибка в моем коде, это не работает, Jquery Ajax - PullRequest
0 голосов
/ 10 октября 2018

Я хочу применить цикл for (или цикл do / while), но он не работает.

Без цикла for он работает для одного элемента, но я хочу реализовать цикл, потому что мне нужно несколько элементов в одном счете.

$(document).on('keyup', function() {
  for (var m = 1; m < 200; m++) {
    $("#item_name" + m).on('keyup', function() {
      var suppliercode = $(this).val();
      $.ajax({
        type: 'POST',
        url: 'sqty_dynamics.php',
        data: {
          item_name: suppliercode
        },
        success: function(data) {
          $("#order_item_squantity" + m).val(data);
        }
      });
    });
  }
});

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Из того, что я вижу в вашем коде, вы помещаете свой цикл for в обработчик событий для обработчика keyup документа.Это то, что вы хотели сделать?

Прямо сейчас этот код говорит: «когда обнаруживается keyup во всем документе, добавьте прослушиватели событий для большего количества событий keyup m < 200 раз для m элемента».Это означает, что каждый раз, когда документ получает keyup 'd, слушатели для этих отдельных элементов в цикле повторно добавляются.

Конечно, это не то, чего вы надеялись достичь.Попробуйте просто удалить часть $(document).on(...) и посмотрите, что она делает.

0 голосов
/ 10 октября 2018

Спасибо всем за помощь.Г-н Гуфран Хасан поделится ссылкой, чтобы найти ответ.Итак, после некоторых усилий я нашел ответ.
Этот код работает для меня, чтобы получить требуемые результаты.

<script>
$(document).on('keyup',function(){
$(function() {
var dummy = [1, 2, 3, 4, 5];
$.each(dummy, function(i, v) { 
  $('#item_name' + i).keyup(function() {
              //alert(i);
  var suppliercode = $(this).val();
    $.ajax({
      type: 'POST',
      url: 'sqty_dynamics.php',
      data:{item_name:suppliercode},
       success:function(data){
          $("#order_item_squantity"+ i).val(data);
        }
       });
     });
   });
 }); 
});
</script>
0 голосов
/ 10 октября 2018

Вы используете два события, одно вне цикла, а другое внутри цикла.Внешний цикл работает, а в цикле - нет, потому что для каждой итерации требуется событие keyup.

Так что вам нужно привязать внутреннее событие при его запуске.

Смотрите это событие клика

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...