我想实现一个页面,页面上有两个select标签,比如说一个是省份,另一个是城市,都是下拉菜单的形式.第二个select中的选项内容根据第一个select所选中的值来决定,比如说第一个选择了山东省,那么第二个select中的内容是相应的山东省中的城市用JAVASCRIPT怎么实现,谢谢高手指教!!!还有一个问题,我在JSP页面中用的是struts标签,比如<html:select property="XX" >我想问问javascript中怎样获得这个select标签呢,如果是以前那种标签<input type="select" name或id=...>,这样的话在javascript还可以通过document.getElementById(),  用STRUTS我不懂得怎么在javascript中获得select或者是radio这种控件,因为struts标签中根本就没有id属性...谢谢高手指导 

解决方案 »

  1.   

    struts标签是服务端标签,也说是说会在服务器上被解释执行,到客户端浏览器上就变成了你所谓的"如果是以前那种标签 <input type="select" name或id=...>,",所以你可以用浏览器打开此页面就看到了struts标签中的property的值变成了name属性的值,我想你就已经会访问了。关于你所说的“一个是省份,另一个是城市”是省市级联的问题,我想大概上面的问题解决之后你应该就可以解决了。至于省市级联,用ajax是比较理想的实现。
      

  2.   

    没必要用struts的标签 就直接用
    <select id="provinceId">
      <c:forEach var="province" items="${tbChannelList}">
         <option value="${province.id}">${province.name}</option>
      </c:forEach>
    </select><script type="text/javascript">
       $('#provinceId').change(function(){
           ajax/dwr .....
    });
    </script>
      

  3.   


    第一个问题:struts标签的疑问 你点击 含有<html:select property="XX" >  标签的JSP 页面 ,鼠标右键查看页面源码:就会看到<input type="select" name="XX" >  这个时候你使用document.getElementByName() 就行了。记住,当你不知道<html:select property="XX" > 的name 时,你就鼠标右键查看页面源码。第二个问题:级联问题利用select 标签的onchage() 事件,当第一个select 省份改变时,你使用ajax (最好使用JSON)发一个action请求,查询数据库或者xml文件,把相应省份的值填到第二个selelct 标签里面。
      

  4.   

    如果你的 省份资料 不是存在 数据库或者xml里面,你可以单独搞一个js数组:存省份和市的对应关系,google 网上 代码一大堆  祝好运!
      

  5.   

    1.用ajax(ajax联动很好做的),或者直接页面把所有省市都拿出来,然后js控制第二个(这样比较烦)。
    2.getElementById,不一定要id哦,你在生成的jsp页面右键查看源文件,它那个name对应的也可以用getElementById来获取的。
      

  6.   

    各位大哥,太感动了,我知道STRUTS标签有时候很恶心,还不如使用HTML原来的标签,可以我做的整个工程都用的STRUTS的标签,有一小部分改成原来的HTML标签,感觉不一致.AJAX正在学习不会用。。呵呵谢谢各位了,刚走了一会会就帮我解决问题了,小弟是新手嘿嘿