2012-06-03 4 views
0

Этот код отлично работает в Firefox, но IE9 возвращает ошибку «_area» не определеноМой код работает в Firefox, но не Internet Explorer

function dbasetype(){ 

    var dbasedata = document.forms[0]._dbase_name.value; 
    dbasedata = dbasedata.toUpperCase(); 
    dbasedata = dbasedata.replace(/\s/g, ""); 


    if (dbasedata.indexOf("UK_CONTACTS")==-1) { 
     _area.value = _dbase_name.value;    
    } else { 
     setarea(); 
    } 

После ваших ответов я теперь изменен на код, чтобы это, и это работает , Я не могу понять, почему он работал в Firefox без определений. Наверное, это отнесло их к функции, которая вызывала эту функцию?

function dbasetype(){ 

var dbasedata = document.forms[0]._dbase_name.value; 
     dbasedata = dbasedata.toUpperCase(); 
     dbasedata = dbasedata.replace(/\s/g, ""); 

var area = document.forms[0]._area;  
var _dbase_name = document.forms[0]._dbase_name; 

if (dbasedata.indexOf("UK_CONTACTS")==-1) { 
     area.value = _dbase_name.value;   
    } else { setarea(); } 
    } 
} 
+1

В коде, входящем в комплект поставки не имеет никакого упоминания о _area до тех пор, .value линии, это немного трудно работать почему он не работает. Кроме того, вы ссылаетесь на _dbase_name один раз с родителем, и один раз без – freefaller

+0

Для вашего другого вопроса. Это похоже на проводку. Обычно IE имеет глобальные объекты, которые сопоставляются с идентификатором, а не с Firefox. Уверен, что вы не перепутали Firefox и IE? – rekire

ответ

0

Где находится _area? Вы полагаетесь на нестандартное поведение, когда _area - это идентификатор элемента на странице? Если это так переключиться на document.getElementById('_area')

+0

Хорошо, если бы это был случай «_area», являющийся идентификатором элемента страницы, тогда он работал бы в IE, но не в Firefox ... – Pointy

+0

Это тот случай? Я не мог вспомнить, какой из браузеров сделал это ... Все еще не отвечает, где определено '_area' – JaredMcAteer

+0

Да, я согласен, проблема с« _area »каким-то образом. Firefox довольно упрям ​​в том, что не выполняет «неявную переменную» вещь с значениями id элемента; браузеры webkit действуют как IE. (Я думаю, что это ужасная неправильная функция в IE, которую нельзя подражать, но это только я. :-) – Pointy

0

Насколько я отношусь, IE не поддерживает document.forms[] массив ...