Javascript Rails onChange表单提交不提交值

Javascript Rails onChange表单提交不提交值,javascript,ruby,ajax,ruby-on-rails-3,erb,Javascript,Ruby,Ajax,Ruby On Rails 3,Erb,我正在尝试创建一个带有隐藏字段的简单表单,并选择_标记。我希望这张表格一经更改就提交。以下是我目前掌握的代码: <%= form_for :model, :multipart => true, :remote => true, :url => target_url do |f| %><br> <% @array.each do |r| %><br> <ul class="list">

我正在尝试创建一个带有隐藏字段的简单表单,并选择_标记。我希望这张表格一经更改就提交。以下是我目前掌握的代码:

<%= 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 %>
true,:remote=>true,:url=>target|url do | f |%>



  • r、 id%>
    'Some Message',:onChange=>“this.form.submit()”如果@合适?%%>
它在很大程度上是有效的,因为我能够在更改时提交表单,但问题是有时(而且是随机的)选择框的值没有在发送给控制器的参数中设置。因此,如果用户进行了选择,则提交表单时,感兴趣的_字段中会有一个空白值,如
params[:interest_field]=''
,尽管用户正在选择一个值。我真搞不懂为什么会发生这种事。非常感谢您的任何意见


我使用的是rails 3.2和ruby 1.9.3,我会低调地使用。现在,您需要表单的ID
#新的(U)模型
。将以下内容添加到页面的javascript中:

var modelForm = $("#new_model");
modelForm.find("select").change(function() {
   if( $(this).val() ) modelForm.submit();
});

如果没有值,这至少不会让它提交。奇怪的是,您为同一个字段枚举了一系列选择,但是…

您是否尝试过
javascript:this.form.submit()
?是的,这也不起作用。在模型中添加验证,限制空白值。我使用select_标记,因为表单没有修改模型。我在控制器中有拒绝空白参数并显示错误消息的逻辑,但这仍然是糟糕的用户体验。这样做有什么原因吗?有没有更好的方法来实现这一点,从而提供更一致的用户体验?您是否使用?