javascript实现的2级连动实例

<javascript语言部分>

<%

 List dqList=(List)request.getAttribute("dqList");
 List cityList=(List)request.getAttribute("cityList");

%>

<script type="text/JavaScript">

//----------------------------自定义initArea()构造函数
   function InitArea() {
      this.PID="";
      this.ID="";
      this.Name="";
   }

//----------------定义数组(全局变量),存储cityList.
    city=new Array();


    <%//java代码开始
     String name = null;
     Integer id=null;
     Integer area_Id=null;
     int t=0;
     Iterator iterator = cityList.iterator();

//-----------------------把cityList循环存入ctiy数组

//-------------------------------------------------循环开始
     while (iterator.hasNext()) {
          City bo = (City)iterator.next();
          area_Id=bo.getArea().getId();
          name =bo.getCityName();
          id=bo.getId();  
   %>//java代码结束

//----------生成一个自定义对象,把引用赋给ctiy

    city[<%=t%>]=new InitArea();

//---------------------------给新对象赋值,存入city
   
   city[<%=t%>].PID="<%=area_Id%>";
   city[<%=t%>].ID="<%=id%>";
   city[<%=t%>].Name="<%=name%>";
   <%t++;}%>
//--------------------------------------------------循环结束

//--------------------------------定义selectChanged()函数


   function selectChanged() {

   //----------------------获得选中dq的值
    var selectvalue = document.forms[0].elements["dq"].value;

   //-----------------------给cs的options长度初始化
    document.forms[0].elements["cs"].options.length = 0;

    //如果地区值为空,返回
    if (selectvalue =="") {
         return;
    }

   //取city的长度做为循环条件
    for(var t=0;t<city.length;t++){

      //它的pid值等于slectvalue值就增加一个option对象
       if(city[t].PID == selectvalue){
           var objOption1_1 = document.createElement("option");
           objOption1_1.text = city[t].Name;
           objOption1_1.value= city[t].ID;
           document.forms[0].elements["cs"].add(objOption1_1);
     }
    }
  } 
</script> 

 

<body部分>

<body οnlοad="selectChanged();">

<form  name="form1" action" method="post">

.....................................................................................

<td>* 地区:
       <select οnchange="selectChanged();" name="dq" >
        <option value="">不限</option>
        <%
          if(dqList!=null&&dqList.size()>0){
            for(int i=0;i<dqList.size();i++){
              area=(Area)dqList.get(i);
              if(!"".equals(areaId)&areaId.equals(String.valueOf(area.getId()))){
             %>
             <option value="<%=area.getId()%>" selected><%=area.getAreaName()%></option>
             <%}else{ %>
             <option value="<%=area.getId()%>"><%=area.getAreaName() %></option>
             <%}}} %>
             </select>
          </td>
      </tr>
      <tr>
          <td>* 城市:
             <select name="cs" id="cs" ></select>
         </td>
      </tr>

...................................................................................

</form>

</body>

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值