【问题标题】:Two submit buttons one remote and one for submit in rails [duplicate]两个提交按钮,一个遥控器,一个用于在rails中提交[重复]
【发布时间】:2014-06-13 00:15:32
【问题描述】:

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

  1. 首先应该将给定的表单提交到我的控制器中的创建函数
  2. 第二个应该远程执行给定的表单,以在表单下显示输入的文本作为预览

查看:

<%= 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>

【问题讨论】:

  • 我有点困惑 rails 应该如何工作?
  • 只需将 erb 中的 JavaScript 代码集成到 &lt;script&gt; 块中
  • 重复的问题是关于另一个完整的主题,即target-attributes,而不是一个常规(保存)和一个“Ajax”按钮(预览)。

标签: ruby-on-rails ajax


【解决方案1】:

请将您的提交更改为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],然后你可以检查条件。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢,但我需要它用于 rails
    • 对不起,我不知道 ruby​​ 语法
    猜你喜欢
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 2016-04-06
    • 2018-01-19
    • 2017-01-21
    • 2013-12-06
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多