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 相关文章推荐
分享20个提升网站界面体验的jQuery插件
Dec 15 Javascript
jquery点击切换背景色的简单实例
Aug 25 Javascript
为什么我们要做三份 Webpack 配置文件
Sep 18 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
Dec 25 Javascript
JS中this的指向以及call、apply的作用
May 06 Javascript
vue 配置多页面应用的示例代码
Oct 22 Javascript
微信小程序实现单列下拉菜单效果
Apr 25 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
Jul 02 Javascript
百度小程序之间的页面通信过程详解
Jul 18 Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 Javascript
JS实现小星星特效
Dec 24 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
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
mysql 性能的检查和优化方法
2009/06/21 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
[03:55]TI9战队采访——TNC Predator
2019/08/22 DOTA
Python的Django框架中的表单处理示例
2015/07/17 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
Python批量发送post请求的实现代码
2018/05/05 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
HTML5标签小集
2011/08/02 HTML / CSS
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
简历中的自我评价怎么写
2014/01/29 职场文书
工作求职信
2014/07/04 职场文书
现场活动策划方案
2014/08/22 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
2015毕业寄语大全
2015/02/26 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书