我在Jquery很糟糕,我重用了这段代码,有人设法让它运转起来。它需要做两件事
1)允许在页面加载后进行更改并正确获取总和和总计 2)加载预加载的表单值并在页面加载时计算它们。
我不得不复制1x .each和1x .live的两个函数(" keyup"以获得结果。有更简洁的方法吗?
$(document).ready(function() {
var $k = jQuery.noConflict();
$k.fn.sum = function() {
var sum = 0;
$k(this).each(function() {
sum += parseFloat($k(this).val());
});
return sum;
}
$k(function() {
$k('input[name^=quantity], input[name^=unitprice]').each(function() {
var quantity = parseFloat($k(this).parent().find('input[name^=quantity]').val());
var unitprice = parseFloat($k(this).parent().find('input[name^=unitprice]').val());
$k(this).siblings('input[name^=linetotal]').val(quantity * unitprice);
var sum = $k('input[name^=linetotal]').sum();
$k('#subtotal').val(sum);
});
$k('input[name^=quantity], input[name^=unitprice]').live("keyup", function() {
var quantity = parseFloat($k(this).parent().find('input[name^=quantity]').val());
var unitprice = parseFloat($k(this).parent().find('input[name^=unitprice]').val());
$k(this).siblings('input[name^=linetotal]').val(quantity * unitprice);
var sum = $k('input[name^=linetotal]').sum();
$k('#subtotal').val(sum);
});
});
});
答案 0 :(得分:0)
您正在寻找.trigger('event')
试试这个:
$(function()
{
$('input[name^=quantity], input[name^=unitprice]').on('keyup', function()
{
var parent = $(this).parent(),
subtotal = 0,
quantity = parseFloat(parent.find('input[name^=quantity]').val()),
unitprice = parseFloat(parent.find('input[name^=unitprice]').val());
$(this).siblings('input[name^=linetotal]').val(quantity * unitprice);
$('input[name^=linetotal]').each(function()
{
subtotal += parseFloat($(this).val());
});
$('#subtotal').val(subtotal);
})
.trigger('keyup');
});