我正在尝试使用隐藏字段和select_tag创建一个简单的表单。我希望这个表格能够在改变时提交。这是我到目前为止的代码:
<%= form_for :model, :multipart => true, :remote => true, :url => target_url do |f| %><br>
<% @array.each do |r| %><br>
<ul class="list">
<li class="list block">
<%= image_tag(r.image_url(:sm_thumb)) if r.try(:images).try(:first) %><br>
<%= r.child.try(:name) %><br>
<%= f.hidden_field :id, :value => r.id %><br>
<%= select_tag 'interested_field', options_from_collection_for_select(@array_of_choices, 'id', 'first_name'), :prompt => 'Some Message', :onChange=>"this.form.submit()" if @appropriate? %><br>
</li>
</ul>
<% end %>
<% end %>
它适用于大多数情况,因为我能够提交表单onChange,问题虽然有时(并且它是随机的)选择框的值没有设置在发送到控制器的参数中。因此,如果用户进行选择,则尽管用户正在选择值,但在 params[:interested_field] = ''
中,表单仍会在interest_field中以空白值提交。我无法弄清楚我的生活,为什么会发生这种情况。任何输入都非常感谢。
我正在使用rails 3.2和ruby 1.9.3
答案 0 :(得分:0)
我会不引人注意地做。您现在需要表单的ID #new_model
。将其添加到您的javascript页面:
var modelForm = $("#new_model");
modelForm.find("select").change(function() {
if( $(this).val() ) modelForm.submit();
});
如果没有价值,至少不会提交。奇怪的是,你为同一个领域列举了一堆选择......