Работа с элементами формы как с хеш таблицей
Форма - 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, время: 17:43. |