|
|
|
| Есть код! Рабочи!
<html>
<head>
<script language='JavaScript' type='text/javascript'>
var id=0;
function add_field()
{
id += 1;
text="<table><tr><td><input type='text' name='text["+id+"]'></td><td><textarea name=textarea["+id+"]' rows='3' cols='50'></taxtarea></td></tr></table>";
document.getElementById("constructor").innerHTML = document.getElementById("constructor").innerHTML + text;
}
</script>
<head>
<body>
<form action='add.php' method='post'>
<input type='button' onclick='add_field()' value='добавить'> <input type='submit'><br>
<div id='constructor'>
</div>
</form>
</body>
</html>
|
проблема в такого рода: при добавлении новых полей, текст что был введен в предыдущих полях исчезает ((( как сделать так чтобы он не исчезал! | |
|
|
|
|
|
|
|
для: mixer
(10.12.2007 в 14:18)
| |
document.getElementById("constructor").innerHTML += text;
|
| |
|
|
|
|
|
|
|
для: MIchail1982
(10.12.2007 в 14:21)
| | ((( не, это получается немного упрощенная версия того что у меня уже есть!
жму "добавить" появлются 2 поля ввожу в них любой текст жму опять "добавить" появляются еще 2 поля а текст в предыдущих двух затирается... а мне нужно чтобы остался | |
|
|
|
|
|
|
|
для: mixer
(10.12.2007 в 14:29)
| | Это в каком браузере? в ИЕ и ФФ всё ОК
<textarea name=textarea["+id+"]
|
там удалите лишний ' | |
|
|
|
|
|
|
|
для: mixer
(10.12.2007 в 14:29)
| | объект.innerHTML - это всего лишь изначальный HTML-код, который был прописан в объекте.
Все, что юзер позже вписал в текстовое поле - оно ведь изначально в коде отсутствовало, потому и при перезаписи innerHTML всё введенное юзером исчезает.
Чтобы сохранилось введенное юзером, трогать то, с чем он уже работал (куда вводил значения) НЕЛЬЗЯ.
Новые элементы необходимо создавать одним из методов:
или createElement ()
или cloneNode () - если добавляется аналогичный имеющемуся элемент
А "приживлять" эти новые элементы в объекте следует одним из методов:
или appendChild ()
или insertAdjacentElement ()
или insertAdjacentHTML () | |
|
|
|
|
|
|
|
для: CNT
(10.12.2007 в 15:27)
| | можно ли навести пример? если не трудно)))) | |
|
|
|
|
|
|
|
для: mixer
(10.12.2007 в 16:17)
| | Трудно, ибо вы используете таблицу, а с ней при клонировании довольно много заморочек, ибо разные браузеры по разному динамически создают таблицы - писать много кода надо.
А как добавляется элемент - вы, я смотрю, и сами уже знаете (10.12.2007 в 18:42) | |
|
|
|
|
|
|
|
для: CNT
(10.12.2007 в 15:27)
| | + createTextNode
или проще - innerHTML += | |
|
|
|
|
|
|
|
для: bronenos
(10.12.2007 в 17:51)
| | Вы бы сначала попробовали, что ли, прежде чем "простые" советы раздавать, а?
Заодно неплохо бы и научиться читать повнимательней - совет по поводу innerHTML += уже звучал выше (10.12.2007 в 14:21) и топикстартером на него был дан отрицательный ответ (10.12.2007 в 14:29)
Практически все браузеры (кроме MSIE) при перезаписи innerHTML воспроизводят только начальный код - без изменений внесенных юзером - о чем я и написал (10.12.2007 в 15:27) | |
|
|
|
|
|
|
|
для: mixer
(10.12.2007 в 14:18)
| |
<html>
<head>
<script language='JavaScript' type='text/javascript'>
var id=0;
function add_field()
{
var s = document.createElement('input');
var b = document.createElement('br');
s.type='text';
id++;
s.name='text'+id;
s.value=id;
document.getElementById("constructor").appendChild(s);
document.getElementById("constructor").appendChild(b);
}
</script>
<head>
<body>
<form action='add.php' method='post'>
<input type='button' onclick='add_field()' value='добавить'> <input type='submit'><br>
<div id='constructor'>
</div>
</form>
</body>
</html>
|
работает! немного не такк как мне хотелось но все же работает))) | |
|
|
|
|
|
|
|
для: mixer
(10.12.2007 в 14:18)
| |
<html>
<head>
<script language='JavaScript' type='text/javascript'>
var id=0;
function add_field()
{
var s = document.createElement('input');
var t = document.createElement('textarea');
var b = document.createElement('br');
var dell = document.createElement('input');
var add = document.createElement('input');
s.type='text';
id++;
s.name='text['+id+']';
s.value=id;
t.name='textarea['+id+']';
t.rows=3;
t.cols=50;
dell.type='button';
dell.onclick='dell_field()';
dell.value='-';
add.type='button';
add.onclick='add_field()';
add.value='+';
document.getElementById("constructor").appendChild(s);
document.getElementById("constructor").appendChild(t);
document.getElementById("constructor").appendChild(add);
document.getElementById("constructor").appendChild(dell);
document.getElementById("constructor").appendChild(b);
}
function dell_field()
{
document.getElementById("constructor").removeChild();
}
</script>
<head>
<body>
<form action='add.php' method='post'>
<input type='button' onclick='add_field()' value='добавить'> <input type='submit'><br>
<div id='constructor'>
</div>
</form>
</body>
</html>
|
вот последгяя модернизация))
Вопрос следующий: как удалить елемент? как правильно использовать removeChild()? или может есть другой метод удаления елементов? | |
|
|
|
|
|
|
|
для: mixer
(10.12.2007 в 20:23)
| |
obj.parentNode.removeChild(obj);
|
| |
|
|
|
|
 2.4 Кб |
|
|
для: bronenos
(10.12.2007 в 20:48)
| | чегото не получается (((
больше часа проигрался с этим удаление и ничего не выходит
я прикрипил файлик с исходником... если не трудно посмотрите чо там я не так написал ((( | |
|
|
|