【问题标题】:javascript to calculate total price?javascript计算总价?
【发布时间】:2012-02-03 10:55:52
【问题描述】:

我有一个文本框和 2 个标签,其中一个标签是“价格”,另一个是“总价”,它们位于网格视图的其中一列中。

gridview 绑定到一个名为 Product 的数据库表,基本上它会显示一个产品列表,我需要 javascript 通过价格 * 数量来计算总价格。

我尝试了下面的代码,但是当我在文本框中输入一个值时,总价格的标签会发生变化,但它会影响每一行,这不是我想要的。应该怎么改?

 $("[id*=txtQuantity]").live("change", function () {
               if (isNaN(parseInt($(this).val()))) {
                   $(this).val('0');
               } else {
                   $(this).val(parseInt($(this).val()).toString());
               }
           }).trigger("change");

           $("[id*=txtQuantity]").live("keyup", function () {
               if (!jQuery.trim($(this).val()) == '') {
                   if (!isNaN(parseFloat($(this).val()))) {
                       var row = $(this).closest("table");
                       $("[id*=lblTotalCost]", row).html(parseFloat($("[id*=price]", row).html()) * parseFloat($(this).val()));
                   }
               } else {
                   $(this).val('');
               }

           }).trigger("keyup");

【问题讨论】:

    标签: javascript gridview


    【解决方案1】:

    没有看到标记很难准确地说出来,但如果你说它可以改变价格,但只会影响太多行,我会看看你在这里使用的选择器:

    var row = $(this).closest("table");
    $("[id*=lblTotalCost]", row).html(parseFloat($("[id*=price]", row).html()) * parseFloat($(this).val()));
    

    row 变量是一个完整的表,然后您会找到 ID 包含 lblTotalCost 的任何内容,看起来这是返回表中的所有总成本字段,并一次设置它们。

    再次没有看到标记很难建议,但可能会尝试更改:

    $(this).closest("table");
    

    到:

    $(this).closest("tr");
    

    限制其后代码的范围。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    相关资源
    最近更新 更多