Rails和javascript ?:在索引页面中获取select_tag值

时间:2012-02-15 21:58:40

标签: javascript ruby-on-rails html-select

我想使用RoR构建一个超级简单的商店,并在“Agile Web Developmenet with Rails”一书中找到了一个很好的例子。我所拥有的是商店索引页面上的产品列表,每个产品都有一个按钮,用于将产品添加到购物车。像这样:

<% @products.each do |product| %>
    <%= product.name %><br />
    <%= button_to 'Order', add_to_cart_store_index_path(:id => product), :remote => true %>
<% end %>

我想要做的是为用户添加一个小的下拉菜单,以选择他们想要订购的商品数量:

<%= select_tag("quantity[#{product.id}]", options_for_select(['1', '2', '3', '4'], '1')) %>

单击按钮需要从select_tag菜单传递选定的值。

<%= button_to 'Order', add_to_cart_store_index_path(:id => product, :quantity => ?????), :remote => true %>

我是编程的新手,但我认为我需要javascript / jQuery,比如#quantity [#{product.id}]。val(),但是我无法让它工作。

我希望你能帮忙解决这个问题。如果您看到更好的方法来实现这一点,请告诉我。感谢。

1 个答案:

答案 0 :(得分:0)

我没有尝试以这种方式实现“添加到购物车”按钮,而是将其设为一个表单,以便它可以一起工作并提交数量而无需编写javascript。

<%= form_tag add_to_cart_store_index_path(:id => product), :method => :post do %>
  <%= select_tag :quantity, options_for_select(['1', '2', '3', '4'], '1' %>
  <%= submit_tag 'Add to cart' %>
<% end %>

作为旁注,通过在您的书之后创建自己的简单商店来学习编程可能是一个很好的练习,但如果您打算做更复杂或有价值的任何事情,它将为您节省大量时间来尝试类似的东西。狂欢http://github.com/spree/spree作为解决方案,而不是重新发明轮子。