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获取网页关闭与取消关闭的事件
Dec 13 Javascript
JQuery实现带排序功能的权限选择实例
May 18 Javascript
jquery获取多个checkbox的值异步提交给php
Jul 07 Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 Javascript
JavaScript模拟鼠标右键菜单效果
Dec 08 Javascript
利用百度地图API获取当前位置信息的实例
Nov 06 Javascript
微信小程序实现鼠标拖动效果示例
Dec 01 Javascript
详解从买域名到使用pm2部署node.js项目全过程
Mar 07 Javascript
angular学习之动态创建表单的方法
Dec 07 Javascript
关于JSON解析的实现过程解析
Oct 08 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
Jun 22 Javascript
浅谈vue中resetFields()使用注意事项
Aug 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
discuz7 phpMysql操作类
2009/06/21 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
php的sso单点登录实现方法
2015/01/08 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
php递归调用删除数组空值元素的方法
2015/04/28 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
PHP常用日期加减计算方法实例小结
2018/07/31 PHP
5 cool javascript apps
2007/03/24 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
Python测试人员需要掌握的知识
2018/02/08 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
详解python Todo清单实战
2018/11/01 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
纽约海:Sea New York
2018/11/04 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
我的长生果教学反思
2014/04/28 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
意外事故赔偿协议书
2016/03/22 职场文书