我遵循了使用PHP jquery mysql和bootstrap的发票系统教程。我一个接一个地跟随代码,但是某些类的$(document).on()函数不起作用。但是,在教程视频中,它似乎正在工作。 主要问题是$(document).on()函数调用仅适用于表的第一行,不适用于其余行。
谢谢您的帮助...
HTML部分:
<td><input type="text" name="order_item_quantity[]" id="order_item_quantity'+count+'" data-srno="'+count+'" class="form-control input-sm number_only order_item_quantity"></td>
<td><input type="text" name="order_item_price[]" id="order_item_price'+id+'" data-srno="'+id+'" class="form-control input-sm number_only order_item_price"></td>
<td><input type="text" name="order_item_actual_amount[]" id="order_item_actual_amount'+count+'" data-srno="'+count+'" class="form-control input-sm order_item_actual_amount" readonly /></td>
jQuery函数:
var final_total_amt = $('#final_total_amt').text();
var total = $('#total_item').val();
var count = 1;
function cal_final_total(count){
var final_item_total = 0;
for(var j=1; j<=total; j++){
var qty = 0;
var price = 0;
var actual_amount = 0;
qty = $('#order_item_quantity'+j).val();
if (qty > 0) {
price = $('#order_item_price'+j).val();
if (price > 0) {
actual_amount = parseFloat(qty)*parseFloat(price);
$('#order_item_actual_amount'+j).val(actual_amount);
}
}
$(document).on()函数调用
$(document).on('blur', '.order_item_price', function(){
cal_final_total(count);
});
很抱歉,如果您以前曾问过这个问题,但是我确实在这里检查了类似的问题,并尝试了建议的解决方案,但是似乎都没有用。谢谢您的提前答复。
答案 0 :(得分:0)
您只需替换此代码即可解决
function cal_final_total() {
var final_item_total = 0;
$('.order_item_quantity').each(function(){
parent = $(this).closest('tr');
qty = +parent.find('.order_item_quantity').val();
price = +parent.find('.order_item_price').val();
actualAmount = qty*price;
final_item_total += final_item_total;
parent.find('.order_item_actual_amount').val(actualAmount);
});
}
确保您的输入字段位于单独的 tr 标记
中