我有一个动态表单,使用jquery向dom中添加了行,而总价格似乎非常昂贵
我可以在动态表单中添加和删除最后一行,并计算单价之和,但calculateSumNoTax函数似乎只在php输出的第一行触发,每隔一行通过jquery附加到dom中,不触发calculateSumNoTax 我做错了什么 JS:我有一个动态表单,使用jquery向dom中添加了行,而总价格似乎非常昂贵,jquery,dom,append,dynamic-forms,Jquery,Dom,Append,Dynamic Forms,我可以在动态表单中添加和删除最后一行,并计算单价之和,但calculateSumNoTax函数似乎只在php输出的第一行触发,每隔一行通过jquery附加到dom中,不触发calculateSumNoTax 我做错了什么 JS: 动态添加新行时,事件侦听器keyup函数不会附加到该行 这必须分开做。事件侦听器可以在实时创建后立即添加到该行。我刚刚在这里找到了答案: 改为: 美元。单价。现场“按键”,功能E{ $this.keyup函数{ 计算umnotax; }; }; $(document).
动态添加新行时,事件侦听器keyup函数不会附加到该行
这必须分开做。事件侦听器可以在实时创建后立即添加到该行。我刚刚在这里找到了答案: 改为: 美元。单价。现场“按键”,功能E{ $this.keyup函数{ 计算umnotax; }; };
$(document).ready(function() {
$("a[name='addline']").click(function(){
$("input[name='counter']").val( Number($("input[name='counter']").val()) + 1 );
var i = $("input[name='counter']").val();
$('#quote > tbody:last').append('<tr id="row'+i+'"><td>'+i+'</td><td><input type="text" name="description_'+i+'" value="" /></td><td><input type="text" name="quantity_'+i+'" value="1" /></td><td><input type="text" name="unit_price_'+i+'" class="unit_price" value="" /></td><td><select name="tax_percentage_'+i+'"><option value="0" selected="selected">0</option><option value="19.6">19.6%</option></select></td></tr>');
event.preventDefault();
});
$("a[name='removeline']").click(function(){
var i = $("input[name='counter']").val();
if(i > 1){
$("tr[id='row"+i+"']").remove();
$("input[name='counter']").val( Number($("input[name='counter']").val()) - 1 );
}
event.preventDefault();
});
$(".unit_price").keyup(function() {
$(this).keyup(function(){
calculateSumNoTax();
});
});
});
function calculateSumNoTax() {
var sum = 0;
//iterate through each textboxes and add the values
$(".unit_price").each(function() {
//add only if the value is number
if(!isNaN(this.value) && this.value.length!=0) {
sum += parseFloat(this.value);
}
});
//.toFixed() method will roundoff the final sum to 2 decimal places
$("#notax").html(sum.toFixed(2));
}