两个提交按钮一个遥控器和一个提交轨道

时间:2014-04-27 14:02:16

标签: ruby-on-rails ajax

我正在寻找使用两个提交按钮的解决方案,其中一个表单如下所示:

  1. 第一个应该将给定的表单提交给我的控制器中的create函数
  2. 第二个应该远程执行给定的表单,以在表单下显示输入的文本作为预览
  3. 查看:

    <%= form_for @topic do |f| %>
     .................
     ... some code ...
     .................
      <p>
        <%= f.fields_for :topic_content do |tf| %>
        <%= tf.text_area  :text , :id => 'topic_text',  :cols => 100 , :rows => 15, :class => 'topic_text' %></p>
      <% end %>
     .................
     ... some code ...
     .................
      <%= f.submit "Save", :name => 'save' %>
      <%= f.submit "Preview", :name => 'preview' %>
    <%end%>
    
    <div id='preview_topic_text'>
    </div>
    

2 个答案:

答案 0 :(得分:2)

请将您的提交更改为link_to代码,并为该link_tag提供ID,然后编写ajax函数

<%=link_to('Save', '#', :class => "save","data-button" => "save") %>

预览

<%=link_to('preview', '#',:class => "save","data-button" => "preview") %>
jQuery(".save").click(function(){
      var form_value = jQuery('#your_form_id').serialize();  
      var button = $(this).data("button");     
      if(button == "save"){
          //your ajax code
          // in data you append button the value
      }
      else{

      }
     // document.multi.action+="?"+form_value+"&flag="+ button;
     // document.multi.submit();

});

所以,在控制器中你可以获得params[:flag],然后你可以检查条件。

答案 1 :(得分:-3)

你可以使用PHP来定义按下按钮的条件,试试这段代码:

 if (isset($_GET['submitbtn1']))
    {
       //execute the 1st code here

    }
 else if (isset($_GET['submitbtn2']))
    {
       //execute the 2nd code here

    }