IE 6中的单击问题

时间:2010-01-12 12:26:53

标签: javascript internet-explorer

我有以下代码。代码根据完成的选择填充列表框。但我的代码适用于IE 7&在IE 6上失败。

//----------------------------------------------------------------------------------------------
//fill the location list on the basis of Country

function FillLocationList()
{
    var opt =  document.createElement("OPTION");
    var selected =document.getElementById('drpCountryName').selectedIndex;
    var size = document.getElementById('drpCountryName').options.length;
     if(!event.ctrlKey && !event.shiftKey)
     {

        document.getElementById('drpLocation').options.length = 0;
        for(var i=0;i<locationArray.value.length;i++)
        {

            //if(document.getElementById('drpLocationReportsTo').value == locationArray.value[i].LocationRptId)
            if(document.getElementById('drpCountryName').value == locationArray.value[i].CountryCode)
            {
                 opt =  document.createElement("OPTION");
                 opt.text = locationArray.value[i].LocationName;
                 opt.value=locationArray.value[i].LocationId;
                 document.getElementById("drpLocation").options.add(opt);
            }
        }

     }


    else if(event.ctrlKey || event.shiftKey)
    {

        document.getElementById('drpLocation').length = 0;
        for(j=0;j<document.getElementById('drpCountryName').length;j++)
        {
           var currentLocation = document.getElementById('drpCountryName').options[j].value;
            if(document.getElementById('drpCountryName').options[j].selected)
            {   
                for(var i=0;i<locationArray.value.length;i++)
                {

                    if(currentLocation == locationArray.value[i].CountryCode)
                    {
                         opt =  document.createElement("OPTION");
                         opt.text = locationArray.value[i].LocationName;
                         opt.value=locationArray.value[i].LocationId;
                         document.getElementById("drpLocation").options.add(opt);
                    }
                }
            }
       }

    }

}

2 个答案:

答案 0 :(得分:1)

该功能是在IE6下触发的吗?因为常见的问题是将函数附加到onclick事件(在IE6下有问题)。

改为使用onchange

答案 1 :(得分:0)

如果你从IE6中的onclick中解雇它,试试这个,如果你还没有这样做的话。 IE6在onclick事件中触发javascript函数存在一些问题。

onclick =“FillLocationList(); event.returnValue = false; return false;”