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 相关文章推荐
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
使用jquery清空、复位整个输入域
Apr 02 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
Dec 12 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
Apr 27 jQuery
js+html5实现侧滑页面效果
Jul 15 Javascript
详解react服务端渲染(同构)的方法
Sep 21 Javascript
前端MVVM框架解析之双向绑定
Jan 24 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
解决layui checkbox 提交多个值的问题
Sep 02 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
Aug 06 Javascript
微信小程序实现列表左右滑动
Nov 19 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
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
利用json获取字符出现次数的代码
2012/03/22 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
python+pygame实现坦克大战
2019/09/10 Python
Python笔记之代理模式
2019/11/20 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
Python request中文乱码问题解决方案
2020/09/17 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
专科毕业生学习生活的自我评价
2013/10/26 职场文书
计算机专业学生求职信分享
2013/12/15 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
物业管理专业求职信
2014/06/11 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python