日期:2014-05-16  浏览次数:20364 次

请教一个棘手的javascript和select问题!
大家好,现在需要做一个自动操作的程序。
网页这边不是我们这边写的,也没有要求对方修改的资格。
现在遇到一个问题,把问题抽出来就是:
页面上有3个select,第一个是选择“省份”,第二个是选择“市”,第三个是“县”。
网页刚开始的时候,“省份”下面是有选项的,也就是各个省的名字。
但是“市”和“县”下面都没有选项。
当你选好一个“省份”后,下面的“市”的选项会出来,
同理,当你选好一个“市”后,下面的“县”的选项会出来。

现在程序调用js可以自动把省份设置成“浙江省”,
但是下面对“市”和“县”的设置都不起作用。

不知道该如何解决呢。请各位赐教,谢谢!

------解决方案--------------------
不要直接把值设到select,而是触发onchange事件
------解决方案--------------------
现在程序调用js可以自动把省份设置成“浙江省”,?

那你的程序也可以自动设置下面的市、县的啊,照着设置省的方法做就可以了

看的代码怎么写的
------解决方案--------------------
楼主搜下 下拉联动,就是你要的效果。
------解决方案--------------------
http://blog.csdn.net/hch126163/article/details/6059906
------解决方案--------------------
http://blog.csdn.net/tyhjx/article/details/7421964
------解决方案--------------------
楼主需要的是ajax异步读取市县吧
------解决方案--------------------
市和县的同样的做法,没有效果。

因为市和县开始是没有选项的。

你需要在设置完省之后,再设置市,设置省的时候不是有值了吗?
你仔细想想是不是这样?

让你贴代码也不贴,实现这种的方法有很多种,下面就告诉你一种,

HTML code

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
    //示例数据,数据的不同,获取数据的方法是不同的
      var data = { "浙江省": { "湖州市": ["德清县","长兴县","安吉县","吴兴区","南浔区"], "杭州市": ["上城区", "下城区", "西湖区"] },
                   "河南省": {"洛阳市":["孟津县","新安县","栾川县"],"新乡市":["新乡县","获嘉县","长垣县","封丘县"],"周口市":["鹿邑县","太康县","郸城县","淮阳县"]},
                   "北京市": {"北京市":["昌平区","海淀区","怀柔县","延庆县"]}
                      };

    window.onload = function () {
      //填充省数据
      for (p in data) {
        var sheng = document.getElementById("province");
        sheng.options[sheng.options.length] = new Option(p, p);
      }
      setCity()
    }

    function setCity()
    {
      var sheng = document.getElementById("province");
      var shi = document.getElementById("city");
      shi.options.length = 0;
      var selected_sheng = sheng.options[sheng.selectedIndex].value;
      for (c in data[selected_sheng]) {
        
        shi.options[shi.options.length] = new Option(c, c);
      }
      setCountry()
    }
    function setCountry() {
      var sheng = document.getElementById("province");
      var shi = document.getElementById("city");
      var xian = document.getElementById("country");
      var selected_sheng = sheng.options[sheng.selectedIndex].value;
      var selected_shi = shi.options[shi.selectedIndex].value;
      var xianArray = data[selected_sheng][selected_shi];
      xian.options.length = 0;
      for (i = 0; i < xianArray.length;i++ ) {
        xian.options[xian.options.length] = new Option(xianArray[i], xianArray[i]);
      }
    }
    </script>
</head>
<body>
    <form>
    选择省:<select id="province" onchange="setCity()"></select>
    选择市:<select id="city" onchange="setCountry()"></select>
    选择区县:<select id="country"></select>
    </form>
</body>
</html>

------解决方案--------------------
探讨