0

我有由 ajax 创建的商店表单,并且想要重置它拥有的某些字段。这是我的代码,从表单呈现的地方一直到它自己的视图:

其渲染位置:

宠物/index.html.erb

<div class="tabbable">
   <ul class="nav nav-tabs">
      <li class="active">
         <a href="#tab1" data-toggle="tab">Store</a>
      </li>
   </ul>
   <div class="tab-content">
      <div class="tab-pane active add-store-form" id="tab1">
         <%= render "stores/form" %>
      </div>
   </div>
</div>

它是如何创建的:

注意:我的新视图和创建视图都具有相同的确切代码。

new.js.erb & create.js.erb (就这 1 行)

$('.add-store-form').html('<%= escape_javascript(render(:partial => 'stores/form', locals: { store: @store })) %>');

现在在我的商店表单上,我想#用他们重置字段:

<%= form_for(@store, :remote => true, :html => { :class => "add-form", :id => "sform" }) do |f| %>

  # <%= f.text_field :name  %>

  # <%= f.check_box :personal %>

    <%= f.collection_select :category_id, Category.all, :id, :name, {}, {} %>

  # <%= f.text_field :address %>

    <%= f.text_field :website %>

  # <%= f.text_field :phone_number %>

  <%= f.submit "Create" %>

如何仅重置这些特定字段?

4

1 回答 1

1

这是使用 jQuery 清除表单字段的重复问题。

因此,您应该包含一个具有以下功能的 js 文件( new.js.erb或):create.js.erb

$('#sform').live('submit', function() { 
  $('#name').val("");  # this only resets the name field, provided it has the id 'name'
});

在我链接到的那个问题的答案中,您还有其他示例。请注意,他们使用单击按钮来重置字段,而我建议您在单击创建按钮时使用表单提交事件。

于 2012-08-04T15:06:40.950 回答