LearningRoR
LearningRoR

Reputation: 27192

How can I reset certain fields when my form is submitted?

I have my store form that's created by ajax and want to reset certain fields that it has. Here is my code, starting from where the form is rendered all the way to its own views:

Where its rendered:

pets/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>

How it's created:

Note: Both my new and create view have the same exact code.

new.js.erb & create.js.erb (just this 1 line)

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

Now on my Store form I want to reset the fields with a # by them:

<%= 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" %>

How do I reset these certain fields only?

Upvotes: 0

Views: 342

Answers (1)

Ashitaka
Ashitaka

Reputation: 19193

This is kind of a duplicate question of Clear form fields with jQuery .

So, you should include a js file (not new.js.erb or create.js.erb) that has a function like this:

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

You have other examples in the answers to that question I linked to. Just notice that they use the click on a button to reset the fields while I suggested using your form submit event when you click your Create button.

Upvotes: 1

Related Questions