我创建了一个包含多行和多列的订单
Product_id Qty price
在下拉列表中选择Product
时,会自动填写数量和价格。
在表单的最后,我有一个字段,总计<span id="total"></span>
我制作了以下代码来计算订单的总金额,但在qty
和price
自动填写时,它不起作用。如果我输入qty
或price
jQuery(function($) {
$(".qty, .price").change(function() {
var total = 0;
$(".qty").each(function() {
var self = $(this),
price = self.next(".price"),
subtotal = parseInt(self.val(), 10) * parseFloat(price.val(), 10);
total += (subtotal || 0);
});
$("#total").text(total);
});
});
答案 0 :(得分:1)
您可以在更改代码中的文本框值时使用.trigger('change')
或.change()
:
$(".qty, .price").trigger('change');
或
$(".qty, .price").change();
例如:
$(".qty").val('30').change();
答案 1 :(得分:1)
我不知道它是否正确但你尝试过使用document.load()吗?您可以将代码放在一个函数中,该函数在页面加载时以及字段值发生更改时调用。
答案 2 :(得分:1)
您只需将代码分成新功能,例如:
var calculate = function() {
var total = 0;
$(".qty").each(function() {
var self = $(this),
price = self.next(".price"),
subtotal = parseInt(self.val(), 10) * parseFloat(price.val(), 10);
total += (subtotal || 0);
});
$("#total").text(total);
};
$(".qty, .price").change(calculate);
然后随时打电话。
答案 3 :(得分:0)
尝试在页面加载时调用函数并按照这样做。
$( document ).ready(function() {
YourFunction();
YourFunction() function{
// insert your code
}
});
然后你可以说
$(".qty, .price").change(function() {
YourFunction();
}