doc_ufo
doc_ufo

Reputation: 77

rails form add fields dynamically

I'm trying to set a set of fields to be dynamically displayed on demand. In the model, I've the fields:

attr_accessible ... :instruct1, :instruct2, ... :instruct30

I would like the form to display just instruct1 with a button to add 1 more field until instruct30 is hit and a button to remove one until instruct 1 is hit. All should happen without refreshing page which i think would include some use of AJAX but I couldn't find anything that is similar.

I've searched for something similar but only able to come up with nested form which is not what im looking for as my model is fixed.

Upvotes: 2

Views: 3701

Answers (1)

Jesper
Jesper

Reputation: 4555

The majority of your work is going to be on the client side.

To add and remove form fields dynamically, you have to use javascript. Check out the HTML that Rails generates for the first field, replicate that and add the additional fields using for example jQuery.

A crude example:

$("#button").click(function() {
  $("#theForm")
    .append('<input id="instruct2" name="object[instruct2]" type="text">');
});

You'd have to keep track of how many fields you've added or removed.

Upvotes: 6

Related Questions