更新:我忘记了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);
我想删除,删除所有不提交表单。他们似乎自动这样做。如果我在表单顶部省略了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>