温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何写动态的联动下拉框,4联动下拉框

发布时间:2020-06-03 08:10:11 阅读:991 作者:xiaoqiang_sea 栏目:web开发
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

 今天项目中用到了联动的下拉框,这个是经常用的小技巧,就记录了下来,界面如下。

选择前如下:

如何写动态的联动下拉框,4联动下拉框

选择中:

如何写动态的联动下拉框,4联动下拉框

选择后下拉框都是联动的,4个联动下拉框:

如何写动态的联动下拉框,4联动下拉框

jsp页面代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="/struts-tags" prefix="s" %> <%     String ctx = request.getContextPath();     pageContext.setAttribute("ctx", ctx); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="<%=ctx %>/js/jquery.js" ></script> <script type="text/javascript" src="<%=ctx%>/ckeditor/ckeditor.js"></script> <script type="text/javascript" src="<%=ctx%>/ckfinder/ckfinder.js"></script> <title>商家</title> <link href="<%=ctx %>/css/class.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="<%=ctx %>/js/My97DatePicker/WdatePicker.js"></script> <script type="text/javascript"function checkFile() {      //获得选择的文件的URL     var fileURL = document.forms1.logoUplode.value;     //获得文件的扩展名     fileURLfileURLSplit = fileURL.split(".");     fileExt = fileURLSplit[fileURLSplit.length-1].toLowerCase();     alert(fileURL);     //判断是否是图片文件     if (fileExt=="jpg" || fileExt=="bmp" || fileExt=="gif" || fileExt=="png")     {         //var obj = document.getElementById('lookpic');         //obj.src = fileURL;         return true;     }     else     {         alert("请选择图片文件");         return false;     } }    function onValidate() {     //提交保存     //验证     var dealerId = document.getElementById("dealerId").value;     var modelId = document.getElementById("tbDealerSales.modelId").value;     var modelId2 = document.getElementById("tbDealerSales.modelId2").value;     if(dealerId==""){         document.getElementById("message").innerHTML = "请选择商家!";         return false;     }     if(modelId==""){         document.getElementById("message").innerHTML = "请选择车型!";         return false;     }     if(modelId2==""){         document.getElementById("message").innerHTML = "请选择具体车型,如果没有具体车型请在车型管理中添加";         return false;     }     if(trim(document.getElementById("tbDealerSales.salesPrice").value)=="") {         document.getElementById("message").innerHTML = "报价不能为空!";         return false;     }     if(trim(document.getElementById("validStime").value)=="") {         document.getElementById("message").innerHTML = "开始日期不能为空!";         return false;     }      if(trim(document.getElementById("validEtime").value)=="") {         document.getElementById("message").innerHTML = "结束日期不能为空!";         return false;     }     return true; } function add(){     if(onValidate()){         document.forms[0].action="<%=ctx%>/priceAction!add.action";         document.forms[0].submit();      } } function trim(str){      return str.replace(/(^\s*)|(\s*$)/g, "");  }  function refreshCarBrand(val){     document.getElementById('tbDealerSales.modelId').options.length = 0;     carBrand = document.getElementById('carBrand').value;     //alert(carBrand);     var str = $.ajax({         url: '<%=ctx%>/priceAction!getCarModel.action?carBrand=' + val + '&now=' + new Date().getTime(),         async: false         }).responseText;     //str = "[{'name':'1','value':'1'},{'name':'2','value':'2'}]";    // alert(str);     str = eval("(" + str + ")");          for (var i = 0; i < str.length; i++){         //alert(str[i].value);         document.getElementById('tbDealerSales.modelId').options[i] = new Option(str[i].name,str[i].value);     }     if(document.getElementById('tbDealerSales.modelId').options.length == 0){         document.getElementById('tbDealerSales.modelId').options[i] = new Option("--暂无数据--","");         refreshCarBasic("99999");     }else{         refreshCarBasic(str[0].value);     } } function refreshCarBasic(val){     document.getElementById('tbDealerSales.modelId2').options.length = 0;     carBrand = document.getElementById('tbDealerSales.modelId').value;     //alert(carBrand);     var str = $.ajax({         url: '<%=ctx%>/priceAction!getCarDetail.action?carId=' + val + '&now=' + new Date().getTime(),         async: false         }).responseText;     //str = "[{'name':'1','value':'1'},{'name':'2','value':'2'}]";     str = eval("(" + str + ")");     for (var i = 0; i < str.length; i++){         //alert(str[i].value);         document.getElementById('tbDealerSales.modelId2').options[i] = new Option(str[i].name,str[i].value);     }     if(document.getElementById('tbDealerSales.modelId2').options.length == 0){         document.getElementById('tbDealerSales.modelId2').options[i] = new Option("--暂无数据--","");     } }  function init(){     //refreshCarBrand(document.getElementById('carBrand').value);     //refreshCarBasic(document.getElementById('tbDealerSales.modelId').value); }  function selectCarBrand(val){     //alert(val);     var str = $.ajax({         url: '<%=ctx%>/priceAction!getBand.action?dealerId=' + val ,         async: false             }).responseText;     //alert(str);     var s = "";     carBrand = document.getElementById('carBrand');     var carBrandcarBrandlength = carBrand.options.length;     for(var i=0;i<carBrandlength;i++){         if (carBrand.options[i].value == str)       {                 carBrand.options[i].selected=true;             break;         }            }      refreshCarBrand(str); } </script> </head>  <body onload="init()">     <table width="100%"  border="0" cellspacing="0" cellpadding="0">          <tr>         <td width="26" height="25"><img src="<%=ctx %>/p_w_picpaths/main/main01.jpg" width="26" height="15"></td>         <td width="62" class="bg01">当前位置:</td>         <td class="bg01"><DIV id="u3_rtf"> 报价&gt;  <span class="red">新增报价</span></DIV></td>       </tr>     </table>     <table width="100%"  border="0" cellspacing="0" cellpadding="0">         <tr>           <td height="4" background="<%=ctx %>/p_w_picpaths/main/main02.gif"><img src="<%=ctx %>/p_w_picpaths/main/main02.gif" width="6" height="4"></td>         </tr>       </table> <s:form name="forms1" enctype="multipart/form-data" method="post"> <table border="0" width="70%"  border="0" cellspacing="0" cellpadding="0">     <tr>         <td>选择商家:</td>         <td>             <s:select label="选择商家"  cssStyle="width:120pt;"   id="dealerId" name="tbDealerSales.dealerId" list="tbDealerInfoList" listKey="dealerId" listValue="dealerName" headerKey="" headerValue="----请选择商家----" theme="simple" onchange="selectCarBrand(this.value)"/>             <font color="red">*</font>         </td>     </tr>     <tr>         <td>选择品牌:</td>         <td>             <s:select label="选择品牌"  cssStyle="width:120pt;"  id="carBrand" name="carBrand" list="tbCarBrandList" listKey="brandId" listValue="brandName" headerKey="" headerValue="----请选择品牌----" onchange="refreshCarBrand(this.value)" theme="simple" disabled="true"/>                        <font color="red">*一级/二级品牌,品牌在商家添加的时候已经关联</font>         </td>     </tr>     <tr>         <td>选择车型:</td>         <td>             <s:select id="tbDealerSales.modelId"   cssStyle="width:120pt;"  name="tbDealerSales.modelId" label="选择车型" list="#{ }" headerKey="" headerValue="----请选择车型----"  onchange="refreshCarBasic(this.value)" theme="simple" />             <font color="red">*</font>         </td>     </tr>     <tr>         <td>选择具体车型:</td>         <td>             <s:select id="tbDealerSales.modelId2"   cssStyle="width:120pt;"  name="tbDealerSales.modelId2" label="具体车型" list="#{ }" headerKey="" headerValue="----请选择具体车型----" theme="simple"/>             <font color="red">*</font>         </td>     </tr>     <tr>         <td>汽车报价:</td>         <td>             <input type="text" name="tbDealerSales.salesPrice" id="tbDealerSales.salesPrice" onkeyup="this.value=this.value.replace(/[^\d/.]/g,'')"  maxlength='4'/>             万<font color="red">*</font>         </td>     </tr>     <tr>         <td>有效期:</td>         <td>             <input name="validStime" id="validStime" class="Wdate" type="text" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'validEtime\')||\'2020-10-01\'}'})"/>至              <input name="validEtime" id="validEtime" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'validStime\')}',maxDate:'2020-10-01'})"/>                          <font color="red">*</font>         </td>     </tr>     <tr>         <td><input  type="button" value="添加" onclick="add();"/></td>         <td>          <input type="button" value="取消" onclick="javascript:history.back();"/>         <font color="red" id="message"><s:property value="#request.errorMessage"/></font>         </td>     </tr> </table> </s:form> </body> </html> 

后台代码如下:

public void setCarBasic(String[] idArray){     List list = testService.getCarDetail(idArray[0]);     tbCarBasicList = new ArrayList<TbCarBasic>();     System.out.println("tbCarBasicList.size():" + tbCarBasicList.size());      } 

获取车型代码如下:

    public String getCarModel(){         System.out.println("carBrand--------------------" + carBrand);         response().setCharacterEncoding("UTF-8");         response().setContentType("text/html;charset=UTF-8");         try {             StringBuffer sb = new  StringBuffer();                          String str = "[{'name':'1','value':'1'},{'name':'2','value':'2'}]";             List<TbCarBasic> list = testService.getCarModels(carBrand);             sb.append("[");             for(int i=0;i<list.size();i++){                 TbCarBasic t = list.get(i);                 if(i==0){                     sb.append("{'name':'"+t.getCarName()+"','value':'"+t.getCarId()+"'}");                 }else{                     sb.append(",{'name':'"+t.getCarName()+"','value':'"+t.getCarId()+"'}");                 }             }             sb.append("]"); //          System.out.println(sb.toString());             response().getWriter().write(sb.toString());             response().getWriter().close();          } catch (IOException e) {             e.printStackTrace();         }         return null;     } 

获取具体车型代码如下:

    public String getCarDetail(){ //      System.out.println("--------------------");         response().setCharacterEncoding("UTF-8");         response().setContentType("text/html;charset=UTF-8");         try {             StringBuffer sb = new  StringBuffer();                          String str = "[{'name':'1','value':'1'},{'name':'2','value':'2'}]";             List<TbCarDetail> list = testService.getCarDetail(carId);             sb.append("[");             for(int i=0;i<list.size();i++){                 TbCarDetail t = list.get(i);                 if(i==0){                     sb.append("{'name':'"+t.getModelName()+"','value':'"+t.getModelId()+"'}");                 }else{                     sb.append(",{'name':'"+t.getModelName()+"','value':'"+t.getModelId()+"'}");                 }             }             sb.append("]");             System.out.println(sb.toString());             response().getWriter().write(sb.toString()); //          response().getWriter().write(str);             response().getWriter().close();          } catch (IOException e) {             e.printStackTrace();         }         return null;     } 

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×