Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 具有相同作用的两种形式_Html_Ruby On Rails_Forms - Fatal编程技术网

Html 具有相同作用的两种形式

Html 具有相同作用的两种形式,html,ruby-on-rails,forms,Html,Ruby On Rails,Forms,我的rails应用程序中有两个表单。它们都存在于单独的选项卡中,当我提交一个表单时,我希望另一个表单中的数据也能保存。我该怎么做?或者有没有更好的方法来代替使用两种不同的形式?是否有更好的方法将长表单扩展到多个选项卡,当我按submit时,所有选项卡中的所有数据都应该到达我的操作。谢谢。您可以扩展一个表单以覆盖两个表单的所有元素 这是完全可以的,只要表单标记有效地适合于X/HTML <form action='action1'> <!-- All elements fr

我的rails应用程序中有两个表单。它们都存在于单独的选项卡中,当我提交一个表单时,我希望另一个表单中的数据也能保存。我该怎么做?或者有没有更好的方法来代替使用两种不同的形式?是否有更好的方法将长表单扩展到多个选项卡,当我按submit时,所有选项卡中的所有数据都应该到达我的操作。谢谢。

您可以扩展一个表单以覆盖两个表单的所有元素

这是完全可以的,只要表单标记有效地适合于X/HTML

<form action='action1'>
    <!-- All elements from both forms, plus tabs, etc. -->
</form>

唯一需要考虑的是,在这个地区内是否还会有另一种形式,需要采取另一种行动。例如,如果在其他两个选项卡之间添加第三个选项卡,则会有不同的操作

你不想以这样的方式结束:

<form action='action1'>

    <!-- elements from the combined forms -->

    <form action='action2'>
        <!-- elements for a totally different form, not valid inside another form -->    
    </form>

    <!-- more elements from the combined forms -->

</form>

在这种情况下,最好在提交时使用JavaScript合并这两个表单

jQuery(jQuery.com)将使这变得非常简单。例如,您可以序列化这两个表单,然后连接它们,并通过post或get将结果发送到服务器


也许有更好的方法可以做到这一点,但我想不出任何现成的方法。

我现在无法测试这个概念是否可行,但我相信您可以使用jQuery来实现这一点,它的提交功能将截取任何选项卡上的所有表单提交,类似于这些内容

$("form").submit(function(event){  
    event.preventDefault();  
    //serialize forms here and submit using jquery post  
});  

您应该在字段中查找方法。您可以这样做:

<% form_for @house do |f| %>
  <%= f.text_field :square_feet %>

  <% fields_for @listing do |s| %>
    <%= s.hidden_field :id %>
    <%= s.text_field :asking_price %>
  <% end %>

  <%= f.submit %>
<% end %>
house = House.find(params[:id])
house.update_attributes(params[:house])
listing = Listing.find(params[:listing][:id])
listing.update_attributes(params[:listing])
这是一个更新,但你可以做任何你想在那里