Добавить поля, чтоб не чистились атрибуты 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> Проблема в том, что при добавлении нового поля в форму, содержимое уже существующих очищается. Не подскажете как бы это обойти. Или я может не через то место поля добавляю? :D |
|
Riim, это ты к чему туда ссылку дал? :)
Если ты имеешь ввиду считывать уже заполненные поля и вставлять их значения заново, то так не получится, - это форма для добавления теста, там заранее неизвестно сколько будет вопросов и сколько в каждом из вопросов вариантов ответа, есть еще одна переменная q и функция добавления нового вопроса, которая сбрасывает текущее значение переменной i, чтобы у каждого поля были уникальные имена типа q1a1, q1a2, q2a1, q2a2 и т.д... под каждым вопросом поле с правильным ответом... можно конечно построить трехэтажный цикл, но по-моему нерационально, вот и справшиваю более логичное решение |
http://javascript.ru/tutorial/dom/modify
при изменении innerHTML все элементы создаются заново(а значит получают пустое значение) юзайте createElement и appendChild |
Добавляйте элементы не через innerHTML, а с помощью других DOM-методов, позволяющих создать новый элемент (createElement) и вставить его в документ (insertBefore или appendChild). Вся информация для этого есть по ссылке, которую вам дал Riim.
|
а вон оно как :) не знал, что при использовании += все равно заново создаются, спасибо :yes:
Riim, извини, оказывается ты мне верную ссылку дал |
Часовой пояс GMT +3, время: 22:29. |