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) を返す関数を呼び出します。しかし、2つの入力に挿入する 2 つの行alert(result)が表示され、機能しませんか?108108price1adjusted1

これの何が問題なのですか?

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

私の質問の 2 番目の部分は、入力名を動的にしたいということです。そのため、価格1、価格2、価格3、価格4など、フォームに複数の入力があります。そのため、数値を動的にしたいと考えています。

ループに問題はありません。これは正しく機能していますが、入力を動的にするにはどうすればよいですか。私の例のように:

$('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++; 
 });

2番目の質問に関して、すべての入力に同じ値を入力したい場合、最も簡単なのはクラスを与えることです

<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 に答える