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 相关文章推荐
node.js中的fs.write方法使用说明
Dec 15 Javascript
jQuery中change事件用法实例
Dec 26 Javascript
jquery实现表单验证简单实例演示
Nov 23 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
jQuery中$.ajax()方法参数解析
Oct 22 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
Dec 14 Javascript
JavaScript中数组Array.sort()排序方法详解
Mar 01 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
vue搜索和vue模糊搜索代码实例
May 07 Javascript
vue 实现Web端的定位功能 获取经纬度
Aug 08 Javascript
浅谈 JavaScript 沙箱Sandbox
Nov 02 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重定向的三种方法分享
2012/02/22 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
中止javascript执行的方法
2014/02/14 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
python 文件与目录操作
2008/12/24 Python
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
django修改models重建数据库的操作
2020/03/31 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
经典c++面试题三
2015/07/08 面试题
大学生关于奋斗的演讲稿
2014/01/09 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
客服部班长工作责任制
2014/02/25 职场文书
租房安全协议书
2014/08/20 职场文书
党员民主评议个人总结
2014/10/20 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
python之django路由和视图案例教程
2021/07/26 Python
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python