【问题标题】:Form needs to recalculate order price表格需要重新计算订单价格
【发布时间】:2010-01-30 11:16:03
【问题描述】:

我有一个创建新订单的表格。一份订单可以包括多个产品。每个产品都有价格。订单的价格等于包含在其中的所有产品价格的总和。

我的表单需要更新订单的价格,因为用户为每种产品设置了数量。

想法?

【问题讨论】:

    标签: ruby-on-rails forms


    【解决方案1】:

    在数量输入字段上使用 Javascript 和 onchange HTML 事件。
    当用户更改数量时,Javascript 可以处理表单并计算新的订单价格。 Javascript 能够通过使用如下方式计算多个项目的总价格:

    item_quantity = document.getElementById('item_quantity').value;
    item_price = document.getElementById('item_price').value;
    // Perform some chacks here, to see whether the input values are valid
    item_total = item_price * item_quantity;
    

    对所有商品执行此操作并添加所有 item_total 值以获得总订单价格。

    通过为您的价格和数量字段选择方便的 id,您可以轻松循环,从而独立于您订单中的商品数量。

    【讨论】:

      【解决方案2】:

      由于您在 Rails 上使用 ruby​​,我希望您可以使用观察者,它可以检查您的数量字段的值更改事件。这样一来,您就可以将逻辑排除在您的视野之外。

      http://it.toolbox.com/blogs/database-geek/ror-passing-multiple-parameters-via-observe_field-18656

      http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html

      您也可以只为您的用户提供一个更新数量按钮,该按钮会将表单提交给相同的操作,因此如果表单位于 new.html.erb 中,那么按下该按钮将调用新操作并将它们重定向回同一页面,但您可以更新控制器中的总数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-15
        • 2021-08-29
        • 2015-04-09
        相关资源
        最近更新 更多