0

我有以下 jquery 语法:

 $.post('get_sku_prices', {data:product1.value},function(result) 
 { 
 var counter=1
 $('input[id=price1]').val(result);
 $('input[id=adjustedprice1]').val(result);
 alert(result);
 counter++; 
 });

这显然调用get_sku_prices了返回结果的函数(在本例中为 108)。但是alert(result)会显示108将两行插入108到两个输入中price1并且adjusted1不起作用?

这有什么问题?

 $('input[id=price1]').val(result);
 $('input[id=adjustedprice1]').val(result);

我的问题的第二部分是我想让输入名称动态化。所以我的表单上有多个输入,price1,price2,price3,price4 等,因此我想让数字动态化。

我对循环没有任何问题,这可以正常工作,但是如何使输入动态填充。所以按照我的例子:

$('input[id=price1]').val(result);
$('input[id=price2]').val(result);
$('input[id=price3]').val(result);
$('input[id=price4]').val(result);

是不是很简单:

$('input[id=price+counter]').val(result);

在此先感谢,感谢您的时间和精力。

更新

问题的第一部分现在正在工作,感谢人们:-)

我现在正试图让语法的动态部分正常工作。注释行确实有效。如果我现在想将其更改为动态,则它不起作用。我相信问题出在柜台上。

查看下面的语法,警报会像您期望的那样重复并出现 1、2、3、4 等。

alert(countertwo);
 $.post('get_sku_prices', {data:product1.value},function(result) 
 { 
 //$('#price1').val(result);
 $('#adjustedprice'+counter).val(result);
 //$('#adjustedprice1').val(result);
 $('#price'+counter).val(result);
 });

如果我将语法更改为:

 $.post('get_sku_prices', {data:product1.value},function(result) 
 { 
    alert(countertwo);
 //$('#price1').val(result);
 $('#adjustedprice'+counter).val(result);
 //$('#adjustedprice1').val(result);
 $('#price'+counter).val(result);
 });

警报现在在每个警报上显示“20”(20 次)。20 是行数。所以在 $.post 函数中警报不起作用?

关于为什么不以及如何解决这个问题的任何想法?

谢谢。

4

1 回答 1

1

这段代码怎么样(你也错过了计数器声明后的分号):

$.post('get_sku_prices', {data:product1.value},function(result) 
 { 
 var counter=1;
 $('#price1').val(result);
 $('#adjustedprice1').val(result);
 alert(result);
 counter++; 
 });

关于你的第二个问题,如果你想用相同的值填充所有输入,最简单的方法是给它一个类

<input type="text" id="price1" class="inputprice" />
<input type="text" id="price2" class="inputprice" />
<input type="text" id="price3" class="inputprice" />

然后在您的脚本中,您将定位所有具有类 inputprice 的元素,并更改值:

$('.inputprice').val(result);
于 2013-04-24T14:09:52.793 回答