经典论坛's Archiver

xuxu2004 发表于 2008-8-28 18:16

ff下js失效,帮看看怎么改一下?

省份和城市二级联动的菜单,在IE下可以,在FF下失效,错误报"CityObj has no properties"错误,行"var cityCount = cityObj.options.length;"
[code]<script language="JavaScript" type="text/javascript">
var cityList;
var cityInitSelected = 0;

function InitCities(provinceObjId, cityObjId) {
        var cityObj = document.getElementById(cityObjId);
        var cityCount = cityObj.options.length;
        var i = 0; j = 0;
        var item;
        var textArray;
       
        for (i = 0; i < cityCount; i ++) {
                item = cityObj.options[i];
                if (item.text == "") continue;
                j += 1;
        }
       
        cityList = new Array(j);
       
        j = 0;
        for (i = 0; i < cityCount; i ++) {
                item = cityObj.options[i];
                if (item.text == "") continue;
                textArray = item.text.split("|");
                cityList[j] = new Array(item.value, textArray[0], textArray[1]);
                j += 1;
        }
       
        cityInitSelected = cityObj.value;
        try
        {
                BuildCityList(provinceObjId, cityObjId);
        }
        finally
        {
                cityInitSelected = "0";
        }
}

function BuildCityList(provinceObjId, cityObjId) {
        var provinceObj = document.getElementById(provinceObjId);
        var cityObj = document.getElementById(cityObjId);
        var i = 0; j = 0; count = 0;
        var item;
       
        for (i = 0; i < cityList.length; i ++)
                if (provinceObj.value == cityList[i][2]) count += 1;
       
        cityObj.length = count;
       
        for (i = 0; i < cityList.length; i ++)
                if (provinceObj.value == cityList[i][2]) {
                        cityObj.options[j].value = cityList[i][0];
                        cityObj.options[j].text = cityList[i][1];
                        j += 1;
                }
       
        if (cityInitSelected == 0)
                cityObj.options[0].selected = true;
        else
                cityObj.value = cityInitSelected;
}</script>
<body onload="InitCities('ddlProvince', 'ddlCity')">
<select name="ddlProvince" id="ddlProvince" class="fontnormal" onChange="BuildCityList('ddlProvince', 'ddlCity')">
  <option value="北京市">北京市</option>
  <option value="天津市">天津市</option>
  <option value="河北省">河北省</option>
  <option value="山西省">山西省</option>
</select>
</TD>
<TD align=right width=70><P>城市:</P></TD>
                                    <TD><select name="ddlCity" id="select14" class="fontnormal">
                                      <option value="北京市">北京市|北京市</option>
                                      <option value="天津市">天津市|天津市</option>
                                      <option value="石家庄市">石家庄市|河北省</option>
                                      <option value="唐山市">唐山市|河北省</option>
                                      <option value="秦皇岛市">秦皇岛市|河北省</option>
                                      <option value="邯郸市">邯郸市|河北省</option>
                                      <option value="邢台市">邢台市|河北省</option>
                                      <option value="保定市">保定市|河北省</option>
                                      <option value="张家口市">张家口市|河北省</option>
                                      <option value="承德市">承德市|河北省</option>
                                      <option value="沧州市">沧州市|河北省</option>
                                      <option value="廊坊市">廊坊市|河北省</option>
                                      <option value="衡水市">衡水市|河北省</option>
                                      <option value="太原市">太原市|山西省</option>
                                      <option value="大同市">大同市|山西省</option>
                                      <option value="阳泉市">阳泉市|山西省</option>
                                      <option value="长治市">长治市|山西省</option>
                                      <option value="晋城市">晋城市|山西省</option>
                                      <option value="朔州市">朔州市|山西省</option>
                                      <option value="晋中市">晋中市|山西省</option>
                                      <option value="运城市">运城市|山西省</option>
                                      <option value="忻州市">忻州市|山西省</option>
                                      <option value="临汾市">临汾市|山西省</option>
                                    </select>[/code]

erik168 发表于 2008-8-29 02:54

你的InitCities是这样的
function InitCities(provinceObjId, cityObjId) {
    var cityObj = document.getElementById(cityObjId);
    。。。。。。
}

调用入口是body的onload
<body onload="InitCities('ddlProvince', 'ddlCity')">

但是你的select元素id却不是ddlCity
<select name="ddlCity" id="select14" class="fontnormal">

问题就很明显了

xuxu2004 发表于 2008-8-29 09:30

谢谢,问题的确如此

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.