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 相关文章推荐
json-lib出现There is a cycle in the hierarchy解决办法
Feb 24 Javascript
浅谈js中的延迟执行和定时执行
May 31 Javascript
jQuery自定义数值抽奖活动代码
Jun 11 Javascript
微信小程序实现图片轮播及文件上传
Apr 07 Javascript
Vue实现购物车功能
Apr 27 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
Jul 14 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
Aug 07 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
Apr 24 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
微信小程序绘制图片发送朋友圈
Jul 25 Javascript
js前端如何写一个精确的倒计时代码
Oct 25 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生成自己的LOG文件
2006/10/09 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
Python 的描述符 descriptor详解
2016/02/27 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
Python定义函数实现累计求和操作
2020/05/03 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
Python无损压缩图片的示例代码
2020/08/06 Python
集团公司总经理岗位职责
2013/12/20 职场文书
心得体会怎么写
2013/12/30 职场文书
教师申诉制度
2014/01/29 职场文书
采购意向书范本
2014/03/31 职场文书
供用电专业求职信
2014/07/07 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
学历证明样本
2015/06/16 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
PyTorch 如何自动计算梯度
2021/05/23 Python