1

私のウェブサイトでは、このコードを使用して、ボタンで入力を(複数回)追加するオプションがあります。

$("#add_new_detail").click(function() { 
    $("#det_add_area").append('
        <div id="no_'+i+'"><table><tr><td> '+i+' </td><td> 
            <input type="text" name="det['+i+'][details]" /> </td><td> 
            <input type="text" name="det['+i+'][amount]" value="0" /> </td><td> 
            <input type="text" name="det['+i+'][price_real]" value="0" /> </td><td> 
            <input type="text" name="det['+i+'][price_user]" value="0" /> </td><td> 
            <input type="text" name="det['+i+'][total_price]" value="0" DISABLED  /> 
            </td><td> <input type="text" name="det['+i+'][total_price_for_user]" value="0" DISABLED  /> </td><td>
            <div class="delete_line" onClick="re(\'no_'+i+'\')"> delete </div></td></tr></table></div>
  '); 
  i++; 
});

これで、ボタンをクリックするたびに、実際に新しい入力行が作成されます。それは完璧に機能しています。今、私は入力間で計算しようとしています、私はに数値を入力しようとしています

det ['+ i +'] [amount]

そしてそれを(数学)で2倍にする

det ['+ i +'] [price_real]

結果を投稿するには

det ['+ i +'] [total_price]

今、私はこれらの特定のフィールド(ボタンクリックによって作成されます)をどのように操作できるかわかりません-すべての行には独自の金額、price_real、total_priceがあります...これをonKeyUpで計算するにはどうすればよいですか?誰かが私にこの時点からどのように進んでいるのかを教えてくれれば、私は感謝するでしょう。

ありがとう :)

4

2 に答える 2

0

IDによる選択は(名前による選択とは対照的に)非常に簡単なので、使用するすべての入力に一意のIDを追加することをお勧めします。次に、$( "#theId")。val()を使用してテキストボックスの入力値を取得し、$( "#theId")。val(new_Value)を使用して設定することができます。

また、コードから推測すると、IDには角かっこを使用します。その場合は、次のようにjqueryセレクターでエスケープする必要があります:$( "det \ [1 \] \ [total_price \]")

お役に立てば幸いです:)

于 2013-01-27T16:08:36.163 に答える
0

どうぞ...name属性をに変更しましたid_の代わりにも使用され[ます。

ライブデモ

amountまたはを変更するたびprice_realに、対応するtotal_priceが変更され(total_price = amount * price_real)ます。

jQuery

$("#add_new_detail").on("click", function() { 
    $("#det_add_area").append('<div id="no_'+i+'"><table><tr><td> '+i+' </td><td> \
            <input type="text" id="det_'+i+'_details" /> </td><td> \
            <input type="text" id="det_'+i+'_amount" value="0" /> </td><td> \
            <input type="text" id="det_'+i+'_price_real" value="0" /> </td><td> \
            <input type="text" id="det_'+i+'_price_user" value="0" /> </td><td> \
            <input type="text" id="det_'+i+'_total_price" value="0" DISABLED  /> \
            </td><td> <input type="text" id="det_'+i+'_total_price_for_user" value="0" DISABLED  /> </td><td>\
            <div class="delete_line" onClick="re(\'no_'+i+'\')"> delete </div></td></tr></table></div>\
    '); 

    $("#det_" + i + "_amount").on("change", function() { 
        calculate(this); 
    });

    $("#det_" + i + "_price_real").on("change", function() { 
        calculate(this); 
    });

    i++;
});

function calculate(e) {
    j = $(e).attr('id').split("_")[1]
    total = $("#det_" + j + "_amount").val() * $("#det_" + j + "_price_real").val();
    $("#det_" + j + "_total_price").val(total);
}
于 2013-01-27T17:18:59.137 に答える