【发布时间】:2010-01-30 11:16:03
【问题描述】:
我有一个创建新订单的表格。一份订单可以包括多个产品。每个产品都有价格。订单的价格等于包含在其中的所有产品价格的总和。
我的表单需要更新订单的价格,因为用户为每种产品设置了数量。
想法?
【问题讨论】:
标签: ruby-on-rails forms
我有一个创建新订单的表格。一份订单可以包括多个产品。每个产品都有价格。订单的价格等于包含在其中的所有产品价格的总和。
我的表单需要更新订单的价格,因为用户为每种产品设置了数量。
想法?
【问题讨论】:
标签: ruby-on-rails forms
在数量输入字段上使用 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,您可以轻松循环,从而独立于您订单中的商品数量。
【讨论】:
由于您在 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 中,那么按下该按钮将调用新操作并将它们重定向回同一页面,但您可以更新控制器中的总数。
【讨论】: