jquery填充输入,函数结果不起作用

时间:2013-04-24 14:05:09

标签: jquery

我有以下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插入两个输入price1adjusted1的两行不起作用?

这有什么问题?

 $('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函数内警报不起作用?

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

感谢。

1 个答案:

答案 0 :(得分: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);