ajax+jQuery实现级联显示地址的方法
内容摘要
本文实例讲述了ajax+jQuery实现级联显示地址的方法。分享给大家供大家参考。具体实现方法如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"
con
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"
con
文章正文
本文实例讲述了ajax+jQuery实现级联显示地址的方法。分享给大家供大家参考。具体实现方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | <%@ page language= "java" import= "java.util.*" pageEncoding= "utf-8" contentType= "text/html; charset=utf-8" %> <html> <head> <title>初始化HELLO</title> <script type= "text/javascript" src= "../../js/jquery.js" ></script> <script type= "text/javascript" > $(document).ready( function (){ var str1= '${str}' ; var strArr=str1.split( "," ); var k; for (k=0;k<strArr.length;k++) { $.ajax({ async:false, //原来是这样,不然AJAX是一起发送的,加上这个的话,就保证这个请求有结果,才会发下一个请求 url: 'init.action' , //请求的URL cache: false, //不从缓存中取数据 data:{pid:strArr[k]}, //发送的参数 type: 'Get' , //请求类型 dataType: 'json' , //返回类型是JSON timeout:20000, //超时 error: function () //出错处理 { alert( "程序出错!" ); }, success: function (json) //成功处理 { var len=json.length; //得到查询到数组长度 if (strArr[k]== "0" ) //顶目属地 { $( "<select id='no1' style='width:80px' onchange='show()'></select>" ).appendTo( "#content" ); //在content中添加select元素 $( "<option value='-1'>请选择</option>" ).appendTo( "#no1" ); for ( var i=0;i<len;i++) //把查询到数据循环添加到select中 { $( "<option value=" +json[i].channelId+ ">" +json[i].channelName+ "</option>" ).appendTo( "#no1" ); } } else { $( "<select stype='width:80px' onchange='show()'></select>" ).appendTo( "#content" ); $( "<option value='-1'>请选择</option>" ).appendTo( "#content>select:last" ); for ( var i=0;i<len;i++) { $( "<option value=" +json[i].channelId+ ">" +json[i].channelName+ "</option>" ).appendTo( "#content>select:last" ); } $( "#content>select:eq(" +(k-1)+ ")>option[@value=" +strArr[k]+ "]" ).attr( "selected" , "true" ); //设置选中 if (len==0) //最后一级,没东西就把它给删除 { $( "#content>select:last" ).remove(); } } } }); } //for循环的结尾 }); function show() { var obj=event.srcElement; //取得当前事件的对象,也就是你点了哪个select,这里得到的就是那个对象 var currentObj=$(obj); //将JS对象转换成jQuery对象,这样才能使用其方法 var s1=$(obj).nextAll( "select" ); //找到当前点击的后面的select对象 s1.each( function (i){ $(this).remove(); //循环把它们删除 }); var value1=$(obj).val(); $.ajax({ url: 'init.action' , cache:false, data:{pid:value1}, type: 'Get' , dataType: 'json' , timeout:20000, error: function () { alert( "出错啦" ); }, success: function (json) { var len=json.length; if (len!=0) { $( "<select style='width:80px' onchange='show()'></select>" ).appendTo( "#content" ); $( "<option value='-1'>请选择</option>" ).appendTo( "#content>select:last" ); for ( var i=0;i<len;i++) { $( "<option value=" +json[i].channelId+ ">" +json[i].channelName+ "</option>" ).appendTo( "#content>select:last" ); } } } }); } </script> </head> <body> <h1> 显示管理员信息 </h1> <table width= "50%" border= "1" > <tr> <td>管理员编号</td><td><input type= "text" value= "${admin.adminId}" ></td> </tr> <tr> <td>管理员帐号</td><td><input type= "text" value= "${admin.adminAccount}" > </td> </tr> <tr> <td>管理员姓名</td><td><input type= "text" value= "${admin.adminName}" > </td> </tr> <tr> <td>管理员密码</td><td><input type= "text" value= "${admin.password}" > </td> </tr> <tr> <td>管理员属地</td><td><input type= "text" value= "${admin.channelid}" > </td> </tr> </table> <div id= "content" style= "width: 500px; border: 1px; border-style: solid; background-color: lightblue;" > </div> </body> </html> |
希望本文所述对大家的jquery程序设计有所帮助。
代码注释