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+'][数量]

并用(数学)加倍

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. 也用来_代替[.

现场演示

每当你改变amountprice_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 回答