JQuery异步加载无限下拉框级联功能实现示例


Posted in Javascript onFebruary 19, 2014
<pre code_snippet_id="193059" snippet_file_name="blog_20140218_1_1038704" name="code" class="javascript">/* 
JQuery异步加载无限极下拉框级联功能 
zjy 
*/ 
(function ($) { 
$.ajaxSetup({ async: false }); 
var url = ""; 
var parameter = ""; 
$.fn.extend({ 
Load: function (urlPath) { 
url = urlPath.url; 
parameter = urlPath.parameter; 
$("#ddl1").append("<option value='0'selected='selected'>请选择</option>"); 
$.getJSON(url, parameter, function (data) { 
$.each(data.rows, function (i, row) { 
$("#ddl1").append($("<option></option>").val(row.id).html(row.text)); 
}); 
$("#ddl1").change(function () { $(this).Select($(this).val(), this); }); 
}); 
$(this).Selected(parameter.parentId, $("#ddl1")); 
}, Select: function (parentId, obj) { 
//debugger; 
if (parentId == "0") { 
return; 
} 
parameter.parentId = parentId; 
$.getJSON(url, parameter, function (data) { 
$(obj).nextAll(".ddl").remove(); 
if (data != null) { 
$("<select>", { 
"class": "ddl", 
change: function () { 
$(this).Select($(this).val(), this); 
} 
}).appendTo($("#cascade")); 
$($(".ddl")[$(".ddl").length - 1]).append("<option value='0' selected='selected'>请选择</option>"); 
$.each(data.rows, function (i, row) { 
$($(".ddl")[$(".ddl").length - 1]).append($("<option></option>").val(row.id).html(row.text)); 
}); 
} 
}); 
$(this).Selected(parentId, $(obj).nextAll(".ddl")); 
}, 
Selected: function (parentId, obj) { 
$(this).GetValue(); 
//debugger; 
var selected = "0," + $("#loadselect").val(); 
$.each(selected.split(","), function (i, row) { 
if (row == parentId) { 
//debugger; 
$(obj).val(selected.split(",")[i + 1]); 
$(obj).change(); 
} 
}); 
}, 
GetValue: function () { 
var ddlValue; 
var ddlCount = $(".ddl").length; 
for (var i = ddlCount - 1; i >= 0; i--) { 
if (i != 0) { 
if ($($(".ddl")[i]).val() != 0) { 
ddlValue = $($(".ddl")[i]).val(); 
break; 
} 
} else { 
if ($($(".ddl")[i]).val() == 0) { 
ddlValue = 0; 
break; 
} else { 
ddlValue = $($(".ddl")[i]).val(); 
break; 
} 
} 
} 
$("#selectvalue").val(ddlValue); 
}, 
}); 
})(jQuery); 
</pre><pre code_snippet_id="193059" snippet_file_name="blog_20140218_1_1038704" name="code" class="javascript"></pre><pre code_snippet_id="193059" snippet_file_name="blog_20140218_1_1038704" name="code" class="javascript"></pre><pre code_snippet_id="193059" snippet_file_name="blog_20140218_2_4146793" name="code" class="javascript"></pre><pre code_snippet_id="193059" snippet_file_name="blog_20140218_3_3034761" name="code" class="javascript">调用方法</pre><pre code_snippet_id="193059" snippet_file_name="blog_20140218_4_4987391" name="code" class="javascript"><pre code_snippet_id="193059" snippet_file_name="blog_20140218_4_4987391" name="code" class="javascript"><script type="text/javascript"> 
$(function () { 
$("#cascade").Load({ url: '@Url.Action("GetCountryArea")', parameter: { "parentId": 0, "random": Math.random() } }); 
}); 
</script></pre><br> 
<pre code_snippet_id="193059" snippet_file_name="blog_20140218_5_843717" name="code" class="html"><div id="cascade"> 
<select id="ddl1" class="ddl"></select> 
</div> 
<input id="loadselect" hidden="hidden" value="1,2"/> 
<input id="selectvalue" hidden="hidden" /></pre><br> 
<br> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
</pre>
Javascript 相关文章推荐
基于jQuery的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
Jun 09 Javascript
JavaScript整除运算函数ceil和floor的区别分析
Apr 14 Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 Javascript
基于ajax实现文件上传并显示进度条
Aug 03 Javascript
uploadify多文件上传参数设置技巧
Nov 16 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
Mar 05 Javascript
jQuery 更改checkbox的状态,无效的解决方法
Jul 22 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
Nov 02 Javascript
详解微信小程序实现WebSocket心跳重连
Jul 31 Javascript
js使用cookie实现记住用户名功能示例
Jun 13 Javascript
vue 获取url参数、get参数返回数组的操作
Nov 12 Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 #Javascript
让jQuery Mobile不显示讨厌loading界面的方法
Feb 19 #Javascript
javascript动态向网页中添加表格实现代码
Feb 19 #Javascript
javascript实现动态侧边栏代码
Feb 19 #Javascript
返回上一页并自动刷新的JavaScript代码
Feb 19 #Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
Feb 19 #Javascript
document.forms[].submit()使用介绍
Feb 19 #Javascript
You might like
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
实现PHP搜索加分页
2016/10/12 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
jquery图片放大镜效果
2017/06/23 jQuery
小程序指纹验证的实现代码
2018/12/04 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
vue+element实现表单校验功能
2019/05/20 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
浅析Python 中整型对象存储的位置
2016/05/16 Python
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
pandas string转dataframe的方法
2018/04/11 Python
使用Django清空数据库并重新生成
2020/04/03 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
介绍一下grep命令的使用
2012/06/28 面试题
学校采购员岗位职责
2014/01/02 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
单位介绍信格式范文
2015/05/04 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
MySQL导致索引失效的几种情况
2022/06/25 MySQL