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模板技术
Apr 27 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Mar 18 Javascript
利用js动态添加删除table行的示例代码
Dec 16 Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 Javascript
jQuery.extend 函数及用法详细
Sep 06 Javascript
JavaScript程序中的流程控制语句用法总结
May 23 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
Aug 08 Javascript
教你JS中的运算符乘方、开方及变量格式转换
Aug 09 Javascript
JavaScript 深层克隆对象详解及实例
Nov 03 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
Jul 25 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
Sep 21 Javascript
如何利用React实现图片识别App
Feb 18 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
杏林同学录(四)
2006/10/09 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
eval的两组性能测试数据
2012/08/17 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
js实现分页功能
2017/05/24 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
教师演讲稿范文
2014/01/08 职场文书
高一地理教学反思
2014/01/18 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript