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常用表单验证方法总结
May 22 Javascript
jQuery之Deferred对象详解
Sep 04 Javascript
javascript带回调函数的异步脚本载入方法实例分析
Jul 02 Javascript
Jquery操作cookie记住用户名
Mar 29 Javascript
巧用jQuery选择器提高写表单效率的方法
Aug 19 Javascript
Vuejs第十三篇之组件——杂项
Sep 09 Javascript
遍历json获得数据的几种方法小结
Jan 21 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
从零开始最小实现react服务器渲染详解
Jan 26 Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 Javascript
javascript实现图片轮播代码
Jul 09 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 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时间不正确的解决方法
2008/04/09 PHP
php session处理的定制
2009/03/16 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
鼠标经过的文本框textbox变色
2009/05/21 Javascript
Mootools 1.2教程 类(一)
2009/09/15 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
Python yield 使用浅析
2015/05/28 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
python基础教程项目二之画幅好画
2018/04/02 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
介绍Java的内部类
2012/10/27 面试题
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
外贸主管求职简历的自我评价
2013/10/23 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
锅炉工岗位职责
2015/02/13 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
心得体会格式及范文
2016/01/25 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript