powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Динамическое создание полей
8 сообщений из 8, страница 1 из 1
Динамическое создание полей
    #35433844
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Требуется динамически создать текстовое поле.
Нашла в сети вот тут http://scriptic.ru/form/field.shtml пример. Переделала под себя..
Но у меня выдает ошибку (на строке 12, символ 3, недопустимый аргумент).
Вот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<html><head><script language="javascript">
var items= 1 ;
function AddItem() {
  div=document.getElementById("items");
  button=document.getElementById("add");
  items++;
  newitem="<strong>" + items + ") </strong>";
  newitem+="<input type=\"text\" name=\"p_indicator\"";
  newitem+=" size=\"40\" maxlength=\"100\"></td></tr><tr><td>";
  newnode=document.createElement("span");
  newnode.innerHTML=newitem;
  div.insertBefore(newnode,button);
}
 </script></head><body>
<div align="center">
<form action="card_script" method="POST" name="main">
<table border= 0 >
<tr><td> Название теста </td><td><input type="text" size="40" maxlength="150" name="p_name" value=""></td></tr>
<tr><td> Количество вопросов </td><td><input type="text" size="5" maxlength="3" name="p_quest" value=""></td></tr>
<tr><td> Время на тест (мин) </td><td><input type="text" size="5" maxlength="3" name="p_time" value=""></td></tr>
<tr><td> Количество вариантов ответа на один вопрос </td><td><input type="text" size="5" maxlength="3" name="p_answ" value=""></td></tr>
<tr><td valign=top> Показатели </td><td>
<table border= 0 >
<div ID="items">
            <tr><td><strong> 1 ) </strong><input type="text" name="p_indicator" size="40" maxlength="100"></td></tr><tr><td>
<input type="button" value="Добавить показатель" onClick="AddItem();" ID="add"></td></tr>
</div></table>
</td></tr>
</table>
<center><input type="submit" value="Создать тест"> </center>
</form></div></body></html>

Помогите пожалуйста исправить...
...
Рейтинг: 0 / 0
Динамическое создание полей
    #35433857
Evgeniy_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не используй имена тегов в качестве переменных...
div = div1 = div_...
...
Рейтинг: 0 / 0
Динамическое создание полей
    #35433879
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это не исправляет ошибку...
...
Рейтинг: 0 / 0
Динамическое создание полей
    #35433899
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замени ВСЕ уникальные названия (div, button, newitem, newnode) и перед insertBefore поставь alert(_newnode + " " + _button) и посмотри, какой будет null, отсюда и копай.

(_newnode и _button - это старые newnode и button)
...
Рейтинг: 0 / 0
Динамическое создание полей
    #35433934
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<script language="javascript">
var qitems= 1 ;
function AddItem() {
  qdiv=document.getElementById("items");
  qbutton=document.getElementById("add");
  qitems++;
  qnewitem="<strong>" + qitems + ") </strong>";
  qnewitem+="<input type=\"text\" name=\"p_indicator\"";
  qnewitem+=" size=\"40\" maxlength=\"100\"></td></tr><tr><td>";
  qnewnode=document.createElement("span");
  qnewnode.innerHTML=qnewitem;
  alert(qnewnode + " " + qbutton) ;
  qdiv.insertBefore(qnewnode,qbutton);
}
 </script>

Если делаю вот так, алертом выводится: "[object] [object]"
...
Рейтинг: 0 / 0
Динамическое создание полей
    #35433997
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёпть ... в двух березах заблудился.

insertBefore вставляет по принципу папа.insertBefore(новыйСын, старыйСын), но в твоей структуре "старыйСын" не относится к "папа", так как у "папы" есть единственный сын "tr", у которого "сын" - "td", а вот у него уже "сын" - наш "старыйСын" с id=add. Так что поменяй структуру документа или разберись с иерархией в документе.
...
Рейтинг: 0 / 0
Динамическое создание полей
    #35434006
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Теперь поняла...
...
Рейтинг: 0 / 0
Динамическое создание полей
    #35434048
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckЁпть ... в двух березах заблудился.


а в двух ли? По той чащобе гулять и гулять... Хтмл-код невалиден изначально. Див внутри table - это бред. И <tr><td> внутри дива - тоже. div.insertBefore(newnode,button) - добавление в невалидный див элемента span, внутри которого будет невалидная строка <tr><td> - это тоже из той же оперы.

2топикстартер:
приведите в порядок хтмл. Добавляйте строки таблицы не текстом (в innerHTML таблицы вообще нельзя ничего добавить - это свойство readOnly), а стандартными методами DOM (createElement или полегче будет insertRow , insertCell )
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Динамическое создание полей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]