我的代码中有任何错误吗,这不起作用,Jquery Ajax

时间:2018-10-10 14:51:25

标签: javascript jquery ajax

我想应用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 :(得分:0)

您正在使用两个事件,一个在循环外,另一个在循环内。它可以在外部循环中工作,而在循环中则不是,因为每次迭代都需要classList事件。

因此,您需要在触发事件时绑定事件内部。

See this click event

答案 1 :(得分:0)

根据我在您的代码中看到的,您正在将for循环放入文档keyup处理程序的事件处理程序中。那是你的本意吗?

现在,该代码显示为“当在整个文档中检测到键击时,为m < 200项目增加m次键击事件的事件侦听器”。这意味着每次文档keyup被添加时,循环中这些单独项目的侦听器都会重新添加。

当然这不是您希望实现的目标。尝试完全删除$(document).on(...)部分,然后看看它会做什么。

答案 2 :(得分:0)

感谢大家的帮助。 Gufran Hasan先生分享链接以找到答案。所以,经过一番努力,我找到了答案。
这段代码对我有用,以获得所需的结果。

<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>