I want a form to have a certain field only once at first. But when the user clicks on some markup like 'add more' the field should be replicated/added to the form. Something like 'educational details field' in linkedin.com profiles. This form is neither a content type (I could have used CCK if it were so) nor for the user profile. If the user chooses to enter n-extra fields, they should then be saved in the database.

How can I do this using drupal API? This should be something just client-side JS as no content needs to be fetched from the server asynchronously.