提交表单时如何重置某些字段?

时间:2012-08-04 11:20:16

标签: javascript html

我的商店表单由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和create视图都具有完全相同的代码。

new.js.erb&amp; create.js.erb(只有这一行)

$('.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" %>

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

1 个答案:

答案 0 :(得分:1)

这是Clear form fields with jQuery的重复问题。

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

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

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