<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!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"> <title>Insert title here</title> <script type="text/javascript" src="scripts/jquery.js"></script> </head> <body> <div id="selectDiv_1"></div> <div id="selectDiv_2"></div> </body> <script type="text/javascript"> $(document).ready(function(){ var url = ["productSiteSortAction!queryProductTag.action","productSiteSortAction!queryProductSubtag.action"]; var data = ["productKindDTO.id","productTagDTO.id"]; var title = ["大类","小类","细类"]; $.cascadeSelect.initSelect("selectDiv_1",url,data,title,4); $.cascadeSelect.initSelect("selectDiv_2",url,data,title,4); }); (function($){ var current_select_id = -1; var current_container_id = -1; $.cascadeSelect={ //初始化联动菜单 initSelect: function(id,url,data,title,num){ if(id == undefined ||id == "" || url == null || url.length == 0 || data == null || data.length == 0 || num <= 1){ alert("参数传递错误!"); return; } /* if(url.length != data.length || data.length != title.length || url.length != title.length){ alert("数组参数传递错误!"); return; } */ var contianer = $("#"+id); current_container_id = id; if(contianer == null || contianer == undefined || typeof(contianer) == undefined){ alert("容器定义错误!"); return; } current_container_id = id.substr(10); //创建select for(var i = 0; i < num; i++){ var str_onchange = "$.cascadeSelect.ajaxQuerySelect(\""+url[i]+"\",\""+data[i]+"\",this);"; var str_select = title[i]+"<select id='select"+current_container_id+"_"+i+"' name='select_"+i+"' onchange='"+str_onchange+"'><option value=''>-- 选择 --</option></select>"; contianer.append(str_select); } $("#"+id).append("<select style='display:none' id='select"+current_container_id+"_-1'><option value=''></option></select>"); var obj =$("#select"+current_container_id+"_-1"); $.cascadeSelect.ajaxQuerySelect(url[0],data[0],obj[0]); }, //发送ajax请求 ajaxQuerySelect: function(url,data,obj){ var _data = data+"="+obj.value; current_select_id = parseInt(obj.id.substr(8)); current_container_id = $(obj).parent().attr("id").substr(10); //alert(obj.id+","+current_container_id); $.cascadeSelect.clearAfterCurrentSelect(); if(current_select_id != -1 && obj.value == ""){ return; } $.ajax({ type:"post", async:false, url:url, data:_data, datatype:"json", success:$.cascadeSelect.callback_success, error:$.cascadeSelect.callback_error }); }, //回调函数处理返回的数据 callback_success:function(data){ var data = eval('(' + data + ')'); var _current_select_id = current_select_id + 1; var select_i = $("#selectDiv_"+current_container_id+" > #select"+current_container_id+"_"+_current_select_id); select_i.empty(); var str = "<option value=''>-- 选择 --</option>"; for(var i = 0; i < data.length; i++){ str+="<option value='"+data[i].id+"'>"+data[i].tagName + "</option>"; } select_i.append(str); }, //回调函数处理返回的数据 callback_error:function (XMLHttpRequest, textStatus, errorThrown){ alert(textStatus); }, //把当前选择的之后所有菜单重置 clearAfterCurrentSelect:function(){ var selects = $("#selectDiv_"+current_container_id+" > select[id^='select"+current_container_id+"_']"); selects.each(function(){ var _e_id = parseInt($(this).attr("id").substr(8)); if(_e_id > current_select_id){ $(this).empty(); $(this).append("<option value=''>-- 选择 --</option>"); } }); } } })(jQuery) </script> </html>
详细解决方案
jQuery兑现的可重用的联动菜单
热度:106 发布时间:2012-08-28 12:37:01.0
相关解决方案
- jquery 获取jsp页面的id解决方法
- jquery,二维数组取值。解决办法
- 求jquery.form.js+jquery.validate.min.js 用ajax提交表单的代码范例
- jquery 提交form表单不用插件的那种 如何提交
- jquery ajax回传没有值,该怎么处理
- jquery easyUI datagrid struts2有关问题
- jquery form 有关问题
- springmvc jquery ajax 提交复杂对象,415异常解决办法
- 应用Struts2 与 jquery,ajax验证用户注册,不用从数据库获取数据
- jquery ajax select解决方法
- php jquery check username ajax检察帐号唯一性
- jquery ajax返回值的有关问题
- jquery 或js 获取指定字符间的字符串,并轮换。回答出来的是大神级~
- jquery 的bind里面能不能获得返回值呢? 对小弟我很难的有关问题啊
- jquery 的uploadify下传图片怎么让出错信息提示成中文
- java+jquery easy ui + json + struts分页例子
- jquery easyui分页效率有关问题
- jquery 如何获得动态添加后的子元素个数?
- jQuery.ajax()请求struts2数据 回到data值了undefined
- 关于Struts2 jQuery Plugin的 Result,该如何处理
- Jquery 点击按钮实现图片翻页,该如何解决
- jquery 关于监听checkbox的选中和不选中事件,该如何解决
- jQuery append动态添加的页面对象如何处理刷新掉
- Jquery+json解决思路
- jquery post有关问题
- 求大神解决偏题 - jquery ajax
- jquery $.ajax有关问题
- jquery td遍历有关问题
- jquery ui taps有关问题,求解!
- jquery easyui 如何设置标题列居左,里面的数据列居右