Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2016, 22:52
Интересующийся
Посмотреть профиль Найти все сообщения от NG2016
 
Регистрация: 08.05.2016
Сообщений: 20

Работа с элементами формы как с хеш таблицей
Форма - name="f". В форме создаются textarea. Обработчик просматривает форму и работает с элементами как с ячейками таблицы f["Имя текстового поля"]. В Opera и Fx всё нормально, в IE7 - undefined почему-то.

Как это обойти? Работать как с обектами типа f.Name_Textarea - не получится, т.к. поля создаются скриптом по потребностям посетителя.
Ответить с цитированием
  #2 (permalink)  
Старый 01.09.2016, 23:11
Интересующийся
Посмотреть профиль Найти все сообщения от NG2016
 
Регистрация: 08.05.2016
Сообщений: 20

Какая-то фигня - если элементы "статические" из HTML кода, то доступ как к элементам хэша есть, если вставлять скриптом, то доступа нету, элемент "undefined".

https://jsfiddle.net/4z8k26y2/

Последний раз редактировалось NG2016, 01.09.2016 в 23:21.
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2016, 00:00
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

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>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить submit только нужной формы alexaled Общие вопросы Javascript 1 27.08.2012 12:17
Как добавить кнопки к каждому полю формы SaltoMortale ExtJS 2 07.08.2012 12:22
Работа с XML локально, кроссбраузерно... Как бы вы это делали? oyaebunterkrah Общие вопросы Javascript 22 10.06.2012 02:58
Как сохранить данные из формы? Alex Danilov ExtJS 1 10.06.2012 00:53
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12