是啊,问题是出在这里
你从EJB返回的是什么东西
后面的用了eval函数
也就是说对应的是js下面的数组对象,而==前面的应该也是类似的东西
<%=EJB.ex_chinese(rs.getString("City"))%>这样的东西假如是字符串在这里要加引号
你可以先试下
if ( eval('<%=EJB.ex_chinese(rs.getString("City"))%>') == eval(a[i]))

解决方案 »

  1.   

    你把你的JSP页面打开后,得到生成的JS代码再帖出来给大家伙看看就知道了,这样猜起来搞暗箱操作啊.
      

  2.   

    <tr> 
                            <td height="18"><div align="right"><font size="2">地区:</font></div></td>
                            <td height="18"><div align="left"><font size="2"> 
                                <select name="Province" onChange="cityName(this.value)">
                                  <option value="<%=(isedit)?(EJB.ex_chinese(rs.getString("Province"))):("")%>"><%=(isedit)?(EJB.ex_chinese(rs.getString("Province"))):("选择省份")%></option>
                                </select>
                                <select name="City">
                                  <option value="<%=(isedit)?(EJB.ex_chinese(rs.getString("City"))):("")%>"><%=(isedit)?(EJB.ex_chinese(rs.getString("City"))):("城市")%></option>
                                </select>
                                <script language="JavaScript" type="text/JavaScript">
    var cityouterHTML = document.form1.City.outerHTML.substr(0, document.form1.City.outerHTML.length-9);
    function Province()
    {
       var shengName = ["北京","上海","天津","重庆","香港","澳门","台湾省","广东省","江苏省","浙江省","山东省","福建省","辽宁省","黑龙江省","河北省","湖北省","湖南省","安徽省","吉林省","海南省","四川省","陕西省","山西省","河南省","新疆区","江西省","广西区","内蒙古区","云南省","甘肃省","宁夏区","青海省","贵州省","西藏区"]; //这些数据可以从数据库中取得   var e = document.form1.Province;
       var z ;
       var s = e.outerHTML.substr(0, e.outerHTML.length-9) + "\r\n";  
       for (var i=0; i<shengName.length; i++){
             s += "<option  value='"+ shengName[i] +"'>"+ shengName[i] +"</option>\r\n";};
           s += "</select>";
           e.outerHTML = s;
    }  Province();function cityName(val)
    {
    var 北京 = ["北京"]//这些数据可以从数据库中取得
    var 上海 = ["上海"]
    var 天津 = ["天津"]
    var 重庆 = ["重庆"]
    var 香港 = ["香港"]
    var 澳门 = ["澳门"]
    var 台湾省 = ["台湾"]
    var 广东省 = ["广州","韶关","深圳","珠海","汕头","佛山","江门","湛江","茂名","肇庆","惠州","梅州","汕尾","河源","阳江","清远","东莞","中山","潮州","揭阳","云浮"]
    var 江苏省 = ["南京","无锡","徐州","常州","苏州","南通","连云港","淮安","盐城","扬州","镇江","泰州","宿迁"]
    var 浙江省 = ["杭州","宁波","温州","嘉兴","湖州","绍兴","金华","衢州","舟山","台州","丽水"]
    var 山东省 = ["济南","青岛","淄博","枣庄","东营","烟台","潍坊","济宁","泰安","威海","日照","莱芜","临沂","德州","聊城","滨州","菏泽"]
    var 福建省 = ["福州","厦门","莆田","三明","泉州","漳州","南平","龙岩","宁德"]
    var 辽宁省 = ["沈阳","大连","鞍山","抚顺","本溪","丹东","锦州","营口","阜新","辽阳","盘锦","铁岭","朝阳","葫芦岛"]
    var 黑龙江省 = ["哈尔滨","齐齐哈尔","鸡西","鹤岗","双鸭山","大庆","伊春","佳木斯","七台河","牡丹江","黑河","绥化","大兴安岭"]
    var 河北省 = ["石家庄","唐山","秦皇岛","邯郸","邢台","保定","张家口","承德","沧州","廊坊","衡水"]
    var 湖北省 = ["武汉","黄石","十堰","宜昌","襄樊","鄂州","荆门","孝感","荆州","黄冈","咸宁","恩施州","神农架","随州","仙桃","潜江","天门"]
    var 湖南省 = ["长沙","株洲","湘潭","衡阳","邵阳","岳阳","常德","益阳","郴州","永州","怀化","娄底","吉首","张家界"]
    var 安徽省 = ["合肥","芜湖","蚌埠","淮南","马鞍山","淮北","铜陵","安庆","黄山","滁州","阜阳","宿州","六安","宣城","巢湖","池州","亳州"]
    var 吉林省 = ["长春","吉林","四平","辽源","通化","白山","松原","白城","延边州"]
    var 海南省 = ["海口","三亚","五指山","琼海","儋州","文昌","万宁","东方","澄迈县","定安县","屯昌县","临高县","白沙","昌江","乐东","陵水","保亭","琼中"]
    var 四川省 = ["成都","阿坝","巴中","达州","德阳","甘孜","广安","广元","乐山","凉山","泸州","眉山","绵阳","内江","南充","攀枝花","遂宁","雅安","宜宾","资阳","自贡"]
    var 陕西省 = ["西安","安康","宝鸡","汉中","商洛","商州","铜川","渭南","咸阳","延安","榆林"]
    var 山西省 = ["太原","大同","阳泉","长治","晋城","朔州","忻州","吕梁地区","晋中地区","临汾","运城"]
    var 河南省 = ["郑州","开封","平顶山","洛阳","安阳","鹤壁","新乡","焦作","濮阳","许昌","漯河","三门峡","南阳","商丘","信阳","周口","驻马店","济源市"]
    var 新疆区 = ["乌鲁木齐","阿克苏","阿拉尔","阿图什","巴音郭楞","博尔塔拉","昌吉","哈密","和田","喀什","克拉玛依","克孜勒苏","石河子","图木舒克","吐鲁番","五家渠","伊犁"]
    var 江西省 = ["南昌","景德镇","萍乡","九江","新余","鹰潭","赣州","宜春","上饶","吉安","抚州"]
    var 广西区 = ["南宁","柳州","桂林","梧州","北海","防城港","钦州","贵港","玉林","贺州","百色","河池","崇左","来宾"]
    var 内蒙古区 = ["呼和浩特","包头","乌海","赤峰","呼伦贝尔","兴安","鄂尔多斯","锡林郭勒","乌兰察布","巴彦卓尔","阿拉善","通辽"]
    var 云南省 = ["昆明","保山","楚雄","大理","德宏","迪庆","个旧","红河","景洪","开远","丽江","临沧","潞西","怒江","曲靖","思茅","文山","西双版纳","玉溪","昭通"]
    var 甘肃省 = ["兰州","白银","定西","甘南","嘉峪关","金昌","酒泉","临夏","陇南","平凉","庆阳","天水","武威","玉门","张掖"]
    var 宁夏区 = ["银川","固原","青铜峡","石嘴山","吴忠","中卫"]
    var 青海省 = ["西宁","果洛","海北","海东","海南藏族","海西","黄南","玉树"]
    var 贵州省 = ["贵阳","安顺","毕节","赤水","都匀","凯里","六盘水","铜仁","兴义","遵义"]
    var 西藏区 = ["拉萨","阿里","昌都","林芝","那曲","日喀则","山南"]   
       var e = document.form1.City;
       var s = cityouterHTML;
       if ((val == "") || (val =="北京") || (val =="上海") || (val =="重庆") || (val =="天津") || (val =="台湾省")  || (val =="香港") || (val =="澳门"))  {s += "</select>"; e.outerHTML = s; return;}
       var a = eval(val);
           for (var i=0; i<a.length; i++)
           {
               s += "<option value='"+ a[i] +"'>"+ a[i] +"</option>\r\n";
           }
           s += "</select>";
           e.outerHTML = s;
    }
    </script>
                                </font></div></td>
      

  3.   

    isedit是假的时候显示“选择省份”,和“城市”这个没有问题。当isedit为真的时候我想让下拉框在jvavscript通过比较数据库读出的数据显示省份和城市,而不是通过下面的代码
    select name="Province" onChange="cityName(this.value)">
                                  <option value="<%=(isedit)?(EJB.ex_chinese(rs.getString("Province"))):("")%>"><%=(isedit)?(EJB.ex_chinese(rs.getString("Province"))):("选择省份")%></option>
                                </select>
    直接赋值。这样有个坏处就是更换了省份以后不换城市会对应不起来,比如以前省是山东,城市是济南,然后改省为山西,城市不改的话还是济南。这样入库就是山西济南了,我吧代码贴在楼上,请大家给个解决办法