тривиальная задача, при клике по ссылке нужно что бы добавлялось поле сделал так: <a href="#" onClick="process1(1)">Добавить</a> <br /> function process1(data) { var p; for (var i = 0; i <= data; i++) { p+=('<input type="text" name="name['+i+']" />'); } $('#output1').html('<p>'+p+'</p><p>'); } если один раз кликаешь по ссылке то все хорошо, а как сделать так что бы при повторном клике еще одно поле добавлялось, а то которое до этого было добавлено не пропадало? ну и что бы их потом можно было как то на php обработать
Если без jquery: Code: <script> function process1(data) { var el; for (var i = 0; i < data; i++) { el = document.createElement('input'); el.type = 'text'; el.name = 'name[]'; el.style.display = 'block'; document.getElementById('output1').appendChild(el); } } </script> <a href="" onClick="process1(1); return false;">Добавить</a> <br /> <div id="output1"></div> Если с jquery: Code: <script> function process1(data) { var $new_input; for (var i = 0; i < data; i++) { $new_input = jQuery('<input>', { type: 'text', name: 'name[]', css: { display: 'block' } }).appendTo('#output1'); } } </script> <a href="" onClick="process1(1); return false;">Добавить</a> <br /> <div id="output1"></div> Потом на php ловишь массив $_POST['name'] (если, конечно, постом отправляешь форму). А вообще, какой смысл тут в цикле в функции? Он был сделан, чтоб заполнить поля name у элементов? Если да - цикл можно просто убрать, работа скрипта не изменится.