Работа с элементами формы как с хеш таблицей
Форма - name="f". В форме создаются textarea. Обработчик просматривает форму и работает с элементами как с ячейками таблицы f["Имя текстового поля"]. В Opera и Fx всё нормально, в IE7 - undefined почему-то.
Как это обойти? Работать как с обектами типа f.Name_Textarea - не получится, т.к. поля создаются скриптом по потребностям посетителя. |
Какая-то фигня - если элементы "статические" из HTML кода, то доступ как к элементам хэша есть, если вставлять скриптом, то доступа нету, элемент "undefined".
https://jsfiddle.net/4z8k26y2/ |
NG2016, здравствуйте.
У меня везде одинаково работает: при добавлении 1-го поля все нормально, а при добавлении 2-го и более - ошибка. Это происходит из-за того, что у Вас f["N_"+2] уже не один элемент а набор из нескольких и запись f["N_"+2].value - неправильная. Пример для наглядности: <script> function addTA(f) { var TA=document.createElement("TEXTAREA"); TA.value=(new Date()); TA.name="N_"+2; f.appendChild(TA); } function fun(f) { alert(f["N_"+1].value); if (f["N_"+2]){ if (f["N_"+2] && f["N_"+2].length){ alert("элементов с именем N_2: " + f["N_"+2].length); }else{ alert(f["N_"+2].value); } } return false; } </script> <form onsubmit="return fun(this);"> <textarea name="N_1">456789</textarea> <input type=submit> <input type=button onclick="addTA(this.parentNode);" value="Добавить поле"> </form> |
Часовой пояс GMT +3, время: 03:37. |