Search code examples
htmlformsdynamic

Creating a dynamic html form


I would like to create a form that changes dynamically.

I have a form for creating a project (with fields such as: project_name, project_description...) and the project can have any amount (bigger or equal to 0) of categories.

What i want is to display a button which would give the user the option to add another category field. In addition I would also like the option for category fields to be "deleteable" by the user (if he changes his mind or made a mistake). What would be the best way to do so. I would like an Ajax type solution.

My solution so far is to leave an empty div beneath the last category and onclick of the button to load another field into that div with yet another div which will be used for the next div. Not to happy with this solution since i now have to count how many fields I have and give each div it's own id which complicates the matter even more.

Is there a more simple solution to this?


Solution

  • If you are trying to add fields dynamically with a button, you can easily do so by doing something like the following:

    HTML:

    <form>
        <p>
            <label>Name:</label> <input type="text">
            <label>Age:</label> <input type="text">
            <span class="remove">Remove</span>
        </p>
        <p>
            <span class="add">Add fields</span>
        </p>
    </form>
    

    JS:

    $(".add").click(function() {
        $("form > p:first-child").clone(true).insertBefore("form > p:last-child");
        return false;
    });
    
    $(".remove").click(function() {
        $(this).parent().remove();
    });
    

    Demo: http://jsfiddle.net/UeSsu/1/