开发者

jQuery: Duplicate X amount of divs based on user input

I'm building an employment application form that's dynamic. I want a field that asks for the number of prior employers, whe开发者_如何学Cn they enter an number say 3 it will duplicate a div with these fields 3 times, subsequently updating each name and value field with a number at the end ex: field1, field2, field3.

Fields I need: Employer Name, Title, Supervisor, Address, State, Zip, Phone

Does that make sense? How do I do this? I have no code expect a html input field.


I'd do it with a for loop and jquery's append() function.

$("#employee_fields_generate").click(function ()
{
     $("#employee_fields").html("");
    var number_employees = $("input[name='number_employees']").val();

    for (i=0; i<=number_employees; i++)
    {
        $("#employee_fields").append('<div id="employee'+i+'"> //your field inputs go here </div>');
    }
});


<form id="employees_form">
    <label for="number_employees">Number of Employees:</label><input type="text" name="number_employees" />
    <button id="employee_fields_generate">Generate Fields!</button>
    <div id="employee_fields">
    </div>
</form>


You could have something like this if you want to allow them to adjust the number without losing their first entries.

$('input[name=prior_employers]').keyup(function(){
     var how_many = parseInt($(this).val());
     if(how_many < 1 || isNaN(how_many)) { $('.employer-group').remove(); return; }
     $('.employer-group:gt('+how_many+')').remove();
     var employers = $('.employer-group');
     if (employers.length < how_many) {
       var container = $('#employer-container');
       for(i=employers.length; i<=how_many; i++) {
           container.append('<div class="employer-group"><input type="text" name="employer['+i+'][name]"/></div>');
       }
     }
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜