Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Ошибка, если элемент в форме не существует.


Автор: tolik777 20.8.2007, 17:42
Код

if((document.getElementById('add_note').tpl_text.value) || (document.getElementById('add_note').text_note.value)){
 document.getElementById('frmgoods').tpl_text.value = document.getElementById('add_note').tpl_text.value;
 document.getElementById('frmgoods').text_note.value = document.getElementById('add_note').text_note.value;
}

Есть скрипт на PHP. В HTML выводится одна или 2 формы в зависимости от условий. Проблема в том, что если формы 'add_note' нет, т.е. она не выводиться. То в IE выводиться ошибка и форма не передается.
Не пойму почему. И как это исправить или обойти?

Автор: Mymik 20.8.2007, 21:49
tolik777, а что тебе непонятно ??? т.е. смотри, ты получаешь объект document.getElementById('add_note') и если его нет то ты получаешь null а потом у этого null пытаешь обратиться к полю tpl_text или к полю text_note это уже будет ошибка. Но ты еще дальше идешь и еще спрашиваешь у них value
Потому лучше пойти так 
Код

var noteForm = document.getElementById('add_note');
if(noteForm)
    if((noteForm.tpl_text.value) || (noteForm.text_note.value)){
     document.getElementById('frmgoods').tpl_text.value = noteForm.tpl_text.value;
     document.getElementById('frmgoods').text_note.value = noteForm.text_note.value;
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)