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 相关文章推荐
js停止输出代码
Jul 20 Javascript
jQuery 美元符冲突的解决方法
Mar 28 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
Nov 25 Javascript
js 实现css风格选择器(压缩后2KB)
Jan 12 Javascript
用原生js做个简单的滑动效果的回到顶部
Oct 15 Javascript
每天一篇javascript学习小结(RegExp对象)
Nov 17 Javascript
Spring mvc 接收json对象
Dec 10 Javascript
javascript动画之磁性吸附效果篇
Dec 09 Javascript
Bootstrap Table使用整理(三)
Jun 09 Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 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脚本中include文件出错解决方法
2008/11/20 PHP
PHP安全性漫谈
2012/06/28 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
js实现网页收藏功能
2015/12/17 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
详谈js的变量提升以及使用方法
2018/10/06 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
python opencv肤色检测的实现示例
2020/12/21 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
C语言基础笔试题
2013/04/27 面试题
大四学年自我鉴定
2013/11/13 职场文书
交通文明倡议书
2014/05/16 职场文书
交心谈心活动总结
2015/05/11 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android