我的代码适用于Firefox但不适用于Internet Explorer

时间:2012-06-03 17:30:24

标签: javascript

此代码在Firefox中正常工作,但IE9返回错误“_area”未定义

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(); }
     }
}

2 个答案:

答案 0 :(得分:0)

_area在哪里定义?您是否依赖于_area是页面上元素的ID的非标准行为?如果是,请切换到document.getElementById('_area')

答案 1 :(得分:0)

就我而言,IE不支持document.forms[]数组......