如何在字段自动填充时触发jquery函数?

时间:2014-04-25 13:31:14

标签: javascript jquery

我创建了一个包含多行和多列的订单 Product_id Qty price

在下拉列表中选择Product时,会自动填写数量和价格。

在表单的最后,我有一个字段,总计<span id="total"></span>

我制作了以下代码来计算订单的总金额,但在qtyprice自动填写时,它不起作用。如果我输入qtyprice

,它确实有效
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);
    });
});

4 个答案:

答案 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();
}