基于js的二级联动甚至是多级联动的封装
2014-12-22 09:55
225 查看
前言:
自从大学毕业后,第一次走上工作岗位。为了以后更好的工作,瞻仰了前辈们的经验,把自己的工作中经历的难题或者有用的资源,写入博客中,以便日后能给我甚至是大家一些帮助。
原理:
实现两个select标签,分别是产品类型和产品,典型的二级联动关系。页面加载完成后,前台从后台获取第一个select的值:产品类型,
当第一个select的"产品类型值"发生改变时,触发js的change方法,在该方法中,应用根据jquery的ajax,又一次从后台获取第二个select
的"产品"值。这样以此类推,实现多级联动。在本实例中只实现二级联动。
前台jsp代码:
js的多级联动封装代码:
前台调用该js联动封装类:
验证结果:
自从大学毕业后,第一次走上工作岗位。为了以后更好的工作,瞻仰了前辈们的经验,把自己的工作中经历的难题或者有用的资源,写入博客中,以便日后能给我甚至是大家一些帮助。
原理:
实现两个select标签,分别是产品类型和产品,典型的二级联动关系。页面加载完成后,前台从后台获取第一个select的值:产品类型,
当第一个select的"产品类型值"发生改变时,触发js的change方法,在该方法中,应用根据jquery的ajax,又一次从后台获取第二个select
的"产品"值。这样以此类推,实现多级联动。在本实例中只实现二级联动。
前台jsp代码:
<span style="font-size:14px;"> <select name="productType" id="productType"> <option value="0">-请选择-</option> </select> <select name="product" id="product"> <option value="1">-请选择-</option> </select></span>
js的多级联动封装代码:
/** *@param config:该配置信息必须有url、data和html的select标签Id */ function Linkage(config1){ var config = config1; this.init = function(){ this.getLinkageData(); }; /** * ajax请求,根据config信息从后台获取数据 */ this.getLinkageData = function(){ $.ajax({ type: config.type||"get", url: config.url, data:config.data, success: setProductData = function(data){ var jsonData = eval(data); for(var i=0;i<jsonData.length;i++){ $("#"+config.selectId).append("<option value='"+jsonData[i].id+"'>" + jsonData[i].name + "</option>"); } } }); }; /** * 根据选中ID获取相关数据 */ this.getProductsDataById = function(config1){ //alert(value); config = config1; $("#"+config.selectId).empty(); $("#"+config.selectId).append("<option>-请选择-</option>"); this.getLinkageData(); }; };
前台调用该js联动封装类:
<script type="text/javascript"> $(document).ready(function(){ //新建多级联动封装类,构造函数传递访问url、访问数据data和select标签Id var linkage = new Linkage({data:"method=loadProductType&e="+Math.random(),url:"ProductAction",selectId:"productType"}); //初始化第一个select标签数据 linkage.init(); //根据第一个select选中数据的值获取第二个select标签数据 $("#productType").change(function () { //获取第二个select的数据,该方法传递的参数data比第一个select多了id值(是第一个select的选中值) linkage.getProductsDataById({data:"method=loadProductsByType&id="+this.value+"&e="+Math.random(),url:"ProductAction",selectId:"product"}); }); //多级联动,以此类推 $("...").change(function(){ . . . }); }); </script>
验证结果:
相关文章推荐
- 超简单JS二级、多级联动的简单实例
- 基于js实现二级下拉联动
- js多级联动示例(省份和城市二级联动)
- 超简单JS二级、多级联动的简单实例
- js多级联动示例(省份和城市二级联动)
- 超简单JS二级、多级联动
- 关于Spinner的二级三级甚至多级联动
- js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航
- 省市联动下拉框 基于:js + xmlhttp
- js二级联动菜单
- JS实现的省市二级联动的脚本
- js+jsp+mysql二级联动菜单
- JS无刷新二级联动省市下拉列表
- js源码--简单的二级联动
- 利用js数组生成省市二级联动
- 非常简单的二级联动js菜单 [收藏]
- JS二级联动
- JS结合数据库的二级联动菜单
- 二级联动 三级联动 多级联动 无限级联动下拉列表或菜单专题
- 二级联动下拉菜单(js+DB)