|
|
|
| Необходимо по клику создать копию формы со всему элементами, но с именами отличными от 1-й формы
Например:
1-я Форма:
<input type="text" name="adres" >
<input type="text" name="contact" >
<a hre="">Добавить еще</a>
2-я Форма:
<input type="text" name="adres2" >
<input type="text" name="contact2" >
или рациональнее прописать доя имен adres[] | |
|
|
|
|
|
|
|
для: OLi
(26.03.2011 в 15:19)
| | поместите форму в контейнер и используйте функцию Clone
или как вариант просто сделайте копию объекта на подобии:
var new_obj = obj;
var cont = document.getElementById('cont');
cont.appendChild(new_obj);
|
как удобнее решайте сами
*имена думаю понятно как менять, но действительно рациональнее конечно прописать address[] | |
|
|
|
|
|
|
|
для: psychomc
(26.03.2011 в 15:27)
| | Смысл ясен, но нужен расширенный пример...в нете по clone мало что нашел | |
|
|
|
|
|
|
|
для: OLi
(26.03.2011 в 17:39)
| | ну раз так - ловите
<html>
<head>
<script>
function cloneForm() {
// форма
var form = document.forms[0];
// клонируем
var new_form = form.cloneNode(true);
// родитель формы
var parent = form.parentNode;
// вставляем новую форму в родительский контейнер
parent.appendChild(new_form);
}
</script>
</head>
<body>
<a href="#" onclick="cloneForm()">еще</a>
<div>
<form>
<input type="text" name="address[]"/>
<input type="text" name="contact[]"/>
</form>
</div>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: psychomc
(27.03.2011 в 01:39)
| | Спасибо..а если не всю форму а отдельные элементы формы скопировать в <div id="се"></div> | |
|
|
|
|
|
|
|
для: OLi
(27.03.2011 в 13:15)
| | суть будет та же. только правильно обратитесь к первому контейнеру (который дублируем) и определите родителя (в который вставляем) | |
|
|
|
|
|
|
|
для: psychomc
(27.03.2011 в 13:37)
| | Вот что у меня есть:
<div>Улица <input type="text" name="street[]" size="9"/></label><label>Дом <input id="v" type="text" name="house[]" size="5" /></label>
<label>Квар. <input type="text" name="kvart[]" size="5" /></label></div>
|
function cloneForm() {
// форма
var form =document.getElementById("v")
// клонируем
var new_form = form.cloneNode(true);
// родитель формы
var parent = form.parentNode;
// вставляем новую форму в родительский контейнер
parent.appendChild(new_form);
}
|
При клике объект не создается....В данном случае родительский элемент будет <div>? или все такие label перекрывает? | |
|
|
|
|
|
|
|
для: OLi
(27.03.2011 в 14:18)
| | тогда вот так
<html>
<head>
<script>
function cloneForm() {
// форма
var form = document.forms[0];
// контейнер
var div = form.getElementsByTagName('div')[0];
// клонируем
var new_div = div.cloneNode(true);
// вставляем
form.appendChild(new_div);
}
</script>
</head>
<body>
<a href="#" onclick="cloneForm()">еще</a>
<form>
<div>
<label>Улица</label>
<input type="text" name="street[]" size="9"/>
<label>Дом</label>
<input id="v" type="text" name="house[]" size="5" />
<label>Квар.</label>
<input type="text" name="kvart[]" size="5" />
</div>
</form>
</body>
</html>
|
и еще, что нужно учесть. если клонировать элементы после того, как заполните поля, элементы будут клонироваться вместе со значениями полей. поэтому не помешает сбрасывать значения полей у клонируемого элемента. попробуйте доработать этот момент сами | |
|
|
|
|
|
|
|
для: psychomc
(27.03.2011 в 14:55)
| | а если заменить var div = form.getElementsByTagName('div')[0];
на var div = form.getElementsById('v')[0]; | |
|
|
|
|
|
|
|
для: OLi
(27.03.2011 в 15:10)
| | думаю, Вам все-таки стоит почитать книги по javascript и досконально разобраться что из себя представляет DOM. | |
|
|
|