0

我有一个静态页面和静态控制器。在页面中,我在四个类别中使用 Jquery UI Accordion。每个类别都有单独的控制器、模型和视图。我正在尝试将所有类别渲染到手风琴中并像单独一样工作。我遇到了一个问题,所以,我尝试在静态页面中创建一个表单并执行以下操作。但是在第一个选项卡中打开的所有表单。我想根据标签分别打开和保存表单。任何想法将不胜感激。谢谢

<div class="funding_form">
  <%= form_for(@funding_source, :remote => true) do |f| %>
    <fieldset>
      <legend>Funding Source</legend>
      <div class="control-group">
        <%= f.label :Source_name, 'Funding Source Name' %>
        <%= f.text_field :Source_name %>
      </div>
      <div class="action">
        <%= f.submit 'Save Source name', :class => 'funding_save', remote: true %> | <%= link_to 'Cancel', "#",  {:remote => true, :class => 'funding_cancel_button' } %>
      </div>
    </fieldset>
  <% end %>
</div>

<div class="packages_form">
  <%= form_for(@package, :remote => true) do |f| %>
    <fieldset>
      <legend>Packages</legend>
      <div class="control-group">
        <%= f.label :Package_name, 'Package Name' %>
        <%= f.text_field :Package_name %>
      </div>
      <div class="action">
        <%= f.submit 'Save Packages', :class => 'package_save', remote: true %> | <%= link_to 'Cancel', "#",  {:remote => true, :class => 'package_cancel_button' } %>
      </div>
    </fieldset>
  <% end %>
</div>
4

1 回答 1

2

你为什么不在选项卡的点击动作上放一个ajax请求,在控制器中调用一个动作。即在你的@package 控制器中有一个方法,当被调用时,它将呈现部分包的形式。然后您可以使用 ajax 请求调用它:)

例如,在您的控制器中,您可能希望呈现部分“表单”,您可以使用如下控制器方法:

def return_data
 @package = Package.find(params[:id])

 render partial "form"
end

您可以使用 ajax 请求调用它,例如:

 $.ajax({
  url: '/your_path/return_data',
  dataType: 'html',
  success: function(data){
    console.log(data)
  },
  error: function(data){
    console.log(data)
  });

然后你可以显示它,也许将部分分配给一个 div 并在每次发出 ajax 请求时覆盖它,所以只显示一个:)

于 2013-02-20T10:07:05.397 回答