Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2009, 18:07
Новичок на форуме
Отправить личное сообщение для Alazaur Посмотреть профиль Найти все сообщения от Alazaur
 
Регистрация: 16.05.2009
Сообщений: 9

Добавить поля, чтоб не чистились атрибуты value
Доброго времени суток!
Вот допустим такой код:

HTML:
<form method="post" action="addtest.php">
     <table>
             <tr>
                 <td id="quest">
                      <ul id="q1"><input type="text" name="q1">
                      <input type="button" onclick="addanswer(this);" value="+" id="button1">
                              <li id="q1a1"><input type="text" name="q1a1"></li>
                      </ul>        
                 </td>
              </tr>
       </table>
</form>

JS:
<script type="text/javascript">
     var i = 1;
     function addanswer(link){
     i++;
     link.parentNode.innerHTML += "<li id=\"q1a"+i+"\">"+i+". <input type=\"text\" name=\"q1a"+i+"\"></li>";
     }
</script>

Проблема в том, что при добавлении нового поля в форму, содержимое уже существующих очищается. Не подскажете как бы это обойти.
Или я может не через то место поля добавляю?
Ответить с цитированием
  #2 (permalink)  
Старый 16.09.2009, 18:10
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

http://javascript.ru/tutorial/dom
Ответить с цитированием
  #3 (permalink)  
Старый 16.09.2009, 18:22
Новичок на форуме
Отправить личное сообщение для Alazaur Посмотреть профиль Найти все сообщения от Alazaur
 
Регистрация: 16.05.2009
Сообщений: 9

Riim, это ты к чему туда ссылку дал?
Если ты имеешь ввиду считывать уже заполненные поля и вставлять их значения заново, то так не получится, - это форма для добавления теста, там заранее неизвестно сколько будет вопросов и сколько в каждом из вопросов вариантов ответа, есть еще одна переменная q и функция добавления нового вопроса, которая сбрасывает текущее значение переменной i, чтобы у каждого поля были уникальные имена типа q1a1, q1a2, q2a1, q2a2 и т.д... под каждым вопросом поле с правильным ответом... можно конечно построить трехэтажный цикл, но по-моему нерационально, вот и справшиваю более логичное решение

Последний раз редактировалось Alazaur, 16.09.2009 в 18:44. Причина: ачипятки :)
Ответить с цитированием
  #4 (permalink)  
Старый 16.09.2009, 18:43
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,234

http://javascript.ru/tutorial/dom/modify
при изменении innerHTML все элементы создаются заново(а значит получают пустое значение)
юзайте createElement и appendChild
Ответить с цитированием
  #5 (permalink)  
Старый 16.09.2009, 18:45
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Добавляйте элементы не через innerHTML, а с помощью других DOM-методов, позволяющих создать новый элемент (createElement) и вставить его в документ (insertBefore или appendChild). Вся информация для этого есть по ссылке, которую вам дал Riim.
Ответить с цитированием
  #6 (permalink)  
Старый 16.09.2009, 18:49
Новичок на форуме
Отправить личное сообщение для Alazaur Посмотреть профиль Найти все сообщения от Alazaur
 
Регистрация: 16.05.2009
Сообщений: 9

а вон оно как не знал, что при использовании += все равно заново создаются, спасибо
Riim, извини, оказывается ты мне верную ссылку дал
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск