不在rails中提交,在控制器中处理f.select的按钮

时间:2015-12-04 16:10:19

标签: jquery ruby-on-rails ruby

更新:我忘记了type =“button”,这已经更新了。我的按钮仍然失败,我认为这是因为当我测试时我正在使用select_tag然后尝试让它在控制器端工作时,我将其切换为f.select形式为现在哪种情况我的javascript无法正常工作。我猜是因为f.select使对象有所不同。我现在的问题是我应该使用form_for f.select还是select_tag?我对差异并不十分肯定(我猜测form_for f.select给了我一些传递模型的自动性)。如果我使用select_tag,我还可以使用控制器上的对象吗?在这两种情况下,我真的不知道这是什么样的param地图。此外,如果f.select是首选方法,那么我将相应地调整我的javascript。

var ready;
ready = function() {

            $('.add').on('click', function() {
                var options = $('select#group_providers option:selected').sort().clone();
                $('select#provider_locations').append(options);
            });
            $('.addAll').on('click', function() {
                var options = $('select#group_providers option').sort().clone();
                $('select#provider_locations').append(options);
            });
            $('.remove').on('click', function() {
                $('select#provider_locations option:selected').remove();
            });
            $('.removeAll').on('click', function() {
                $('select#provider_locations').empty();
            });

};

$(document).ready(ready);
$(document).on('page:load', ready);

我有一些java脚本处理两个多选框。 enter image description here

我想删除,删除所有不提交表单。他们似乎自动这样做。如果我在表单顶部省略了form_for,那么这些按钮会执行他们应该执行的java脚本...或者如果我使用此代码,我会在博客上找到:

http://www.whatibroke.com/?p=259

然后确定它没有提交,但javascript也不起作用。

其次我还将这些作为select_tags,然后在form_for下移动它们。我真的很难理解如何处理控制器中返回的左列中的数据,也可以从控制器中的add_locations操作调用此表单。是否犹豫是否发生的提交再次调用更新操作,或者我是否想要调用另一个操作来处​​理数据(我认为是这样),我可以将这些操作传递给form_for? (代码如下)这让我感到困惑,因为我在这里的模型非常深刻。

<div class="container">
<div class="row">
  <%= form_for (@provider) do |f| %>
    <div class="col-md-4">
            <table>
              <tr>
                <th>            
                  <h3> <%= @provider.last_name %> , <%= @provider.first_name %> 's Locations</h3>
                </th>
              </tr>
              <tr>
                <td>          
                 <% if @provider.provider_locations.count >0 %>
                    <%= f.select "provider_locations", options_from_collection_for_select(@provider.provider_locations.map{|j| j.group_location}, :id , :dba), {}, {:multiple => elseb} %>
                  <% true %>
                    <%= f.select "provider_locations", "<option></option>".html_safe, :multiple => true, :style => "width: 300px" %>       
                  <% end %>
                </td>
              </tr>
              <tr>
                <td>          
                   <!-- <button class="remove">Remove</button>  -->
                   <%= submit_tag 'Remove it', :type => 'button', :class => 'remove' %>

                </td>
                <td>          
                  <!-- button class="removeAll">Remove All</button -->
                  <%= submit_tag 'Remove All', :type => 'button', :class => 'removeAll' %>
                </td>
              </tr>
            </table>         
    </div>
    <div class="col-md-4">
         <table>
              <tr>
                <th>            <!-- maybe some buttons here -->

                </th>
              </tr>                   
            </table>
     </div>
     <div class="col-md-4">
            <table>
              <tr>
                <th>            
                 <h3> All Group Locations </h3> <!-- might need a search here too -->
                </th>
              </tr>
              <tr>
                <td>          
                  <% if @group_locations.count >0 %>
                    <%= select_tag "group_providers", options_from_collection_for_select(GroupLocation.all, :id , :dba), :multiple => true %>
                  <% else %>
                    <%= select_tag "group_providers", "<option>Add new...</option>".html_safe, :multiple => true, :style => "width: 300px" %>       
                  <% end %>

                </td>
              </tr>
              <tr>
                <td>          
                    <button class="add">Add</button>

                </td>
                <td>          
                    <button class="addAll">Add All</button>
                </td>
              </tr>
            </table>        
    </div>
    <div class="actions">
      <%= f.submit %>
    </div>
  <% end %>
  </div>
</div>

0 个答案:

没有答案