-1

jqueryのループについてはわかりません。次のコードをproduct1からproduct20へのforループとして実行し、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ループを使用するだけです

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