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 相关文章推荐
Javascript操纵Cookie实现购物车程序
Nov 23 Javascript
让你的CSS像Jquery一样做筛选的实现方法
Jul 10 Javascript
一个关于javascript匿名函数的问题分析
Mar 30 Javascript
jQuery验证插件 Validate详解
Nov 20 Javascript
JS+CSS实现DIV层的展开、收缩效果
Jan 28 Javascript
Ionic2开发环境搭建教程
Aug 20 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
Jun 21 Javascript
vue中如何使用ztree
Feb 06 Javascript
微信小程序实现文字无限轮播效果
Dec 28 Javascript
[jQuery] 事件和动画详解
Mar 05 jQuery
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
js根据后缀判断文件文件类型的代码
May 09 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
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
Joomla开启SEF的方法
2016/05/04 PHP
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
python实现自动化上线脚本的示例
2019/07/01 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
百度软件工程师职位
2013/02/14 面试题
粗加工管理制度
2014/02/04 职场文书
好的促销活动方案
2014/08/21 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
公司管理制度范本
2015/08/03 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
Python道路车道线检测的实现
2021/06/27 Python