HTML / Rails:Form_Tag旁边的按钮会自动提交吗?

时间:2015-12-10 23:05:25

标签: html ruby-on-rails

我想在添加到购物车按钮旁边添加一个收藏夹按钮。添加到购物车按钮恰好实现为表单提交按钮,而收藏按钮调用远程ajax调用,完全与后端无关。最喜欢的按钮在其他页面上工作得非常漂亮,但当我把它放在“添加到购物车”按钮旁边时,它会突然变成一个提交表单按钮!

<%=submit_tag "Add to Cart"%> | <%=get_fav_store_item_button(@store_item,@current_user)%>

有人建议我仍然在表单块中,但是当我在提交后添加结束时,我得到错误“意外关键字确保”。以下是违规&l​​t;%end%&gt;的整个表单:

<%=form_tag add_to_cart_path%>
<% if !store_option_types.empty? %>
    <h1>Add Options!</h1>
    <%store_option_types.each do |key,value|%>
        <%= render :partial=> 'option_selection', :locals => {:store_option_type => StoreOptionType.find(key), :options => value}%>
    <%end%>
<%else%>
    No options available for this order
<%end%>
<%hidden_field_tag "store_id", @store_item.store_id%>
<%hidden_field_tag "store_item_id", @store_item.id%>
<%=submit_tag "Add to Cart"%>
<%end%> | <%=get_fav_store_item_button(@store_item,@current_user)%>

根据要求,收藏按钮脚本:

  def get_fav_store_button(item, user)
   existing_record = UserFavStore.where(:store_id=>item.id, :user_id=>user.id)
    if !existing_record.empty?
      return button_to("♥",add_fav_item_from_search_path(:user_id=>user.id, :store_id =>item.id),
    :id=>"S"+item.id.to_s,:class=>"fav_button fav_yes btn", :remote=>true)
  else
    return button_to("♥",add_fav_store_from_search_path(:user_id=>user.id, :store_id =>item.id),
    :id=>"S"+item.id.to_s,:class=>"fav_button btn", :remote=>true) #No fav_yes class!
  end

这是什么原因,我该如何解决?也许这是一般的html形式现象?

1 个答案:

答案 0 :(得分:0)

看起来你打算这一行:

<%=form_tag add_to_cart_path%>

开始一个延伸到submit_tag "Add to Cart"

的块
<%=form_tag add_to_cart_path do -%>
  <% if !store_option_types.empty? %>
    <h1>Add Options!</h1>
    <%store_option_types.each do |key,value|%>
      <%= render :partial=> 'option_selection', :locals => {:store_option_type => StoreOptionType.find(key), :options => value}%>
    <%end%>
  <%else%>
    No options available for this order
  <%end%>
  <%hidden_field_tag "store_id", @store_item.store_id%>
  <%hidden_field_tag "store_item_id", @store_item.id%>
  <%=submit_tag "Add to Cart"%>
<%end -%>

那是表格#1。表单#2应该以AJAX方法开头。因为现在没有抛出错误,所以代码中的其他位置也可能存在未对齐的块。