我想应用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);
}
});
});
}
});
答案 0 :(得分:0)
您正在使用两个事件,一个在循环外,另一个在循环内。它可以在外部循环中工作,而在循环中则不是,因为每次迭代都需要classList
事件。
因此,您需要在触发事件时绑定事件内部。
答案 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>