-1

我不知道 jquery 中的循环。我希望以下代码作为从 product1 到 product20 的循环运行,并检查是否 quantity1 到 quantity20 没有值,然后将其设置为 1。

$('#product1').change(function() {
    if(  $('#quantity1').val().length == 0 ){
        $('#quantity1').val("1");
    }
});

$('#product2').change(function() {
    if(  $('#quantity2').val().length == 0 ){
        $('#quantity2').val("1");
    }
});

先感谢您。

4

4 回答 4

3

我认为该each方法是这里最好的解决方案,因为无论如何您都需要一个匿名函数来创建一个保存每次迭代值的闭包(因为事件处理程序稍后运行,每个都需要自己的循环计数器版本):

$.each(new Array(20), function(i){
  $('#product' + (i+1)).change(function() {
    var q = $('#quantity' + (i+1));
    if (q.val().length == 0 ){
      q.val("1");
    }
  });
});
于 2012-10-01T08:17:18.847 回答
1

您可以尝试为所有id以开头的输入添加事件处理程序product

$('input[id^="product"]').change(function() {
    var len=$(this).attr('id').length;
    var q='#quantity'+$(this).attr('id').substr(7);
    if($(q).val().length == 0 ){
        $(q).val(1);
    }
});

演示

于 2012-10-01T08:16:52.007 回答
0

阅读本文以获取有关 jquery 循环的更多信息。

使用从选择器开始来选择您的控件。阅读本文了解详情。

您可以使用如下 jQuery 函数:

$('input[id^="product"]').each(function(index) {
$(this).change(function() {
            if(  $(this).val().length == 0 ){
                $(this).val("1");
            }
});
}
于 2012-10-01T08:16:36.383 回答
0

只需使用普通的 Java 脚本进行循环

for (i=0; i<5; i++)
{
  $('#product'+i).change(function() {
    if(  $('#quantity'+i).val().length == 0 ){
        $('#quantity'+i).val("1");
    }
});
}
于 2012-10-01T08:26:00.377 回答