多级下拉框

(function($){
	$.fn.AjaxSelect = function(options) {
		var s = { url : "" // ajax查询的网址
		, change : function(obj) {} // 改变选项的回调,参数为当前的jq对象
		, val : "id"
		, text : "title",
		data : ‘‘,
		};
		// var s = $.extend(defaultVal, options);
		var s = typeof (options) == "string" ? $.extend(s, { url : options }) : $.extend(s, options);
		var nthis = $(this);
		nthis.each(function() {
			var $this = $(this);
			var addChange = function(jqObj) {
				jqObj.change(function() {
					var selects = $this.find("select");
					var sthis = $(this);

					selects.eq(selects.index(this)).nextAll().remove();
					var sval = sthis.val();
					if (sval == ‘‘)
						return;
					// 读数据
					$.getJSON(s.url + sval, function(data) {
						if (data[0]) {
							// 对0号对象进行复制形式
							var tpl = selects.eq(0).clone();
							tpl.removeAttr(‘id‘).children().slice(1).remove();
							tpl.attr(‘id‘, selects.eq(0).attr(‘id‘)+‘_‘+(selects.length+1));
							$.each(data, function(i, item) {
								tpl.append(‘<option value="‘ + item[s.val] + ‘">‘ + item[s.text] + ‘</option>‘);
							});
							$this.append(tpl);
							addChange(tpl);
						}
						s.change(sthis);
					});
				});
			}
			addChange($this.find("select"));
		});
	}
})(jQuery);

调用方法如下:

// AjaxSelect by: qqq
	$(".ajax-select").each(function(i, e){
		var $this = $(e);
		var url = $this.attr(‘url‘);
		var data = $this.attr(‘data‘);
		var arr  = data.split(‘,‘);
		$this.AjaxSelect({url: url, text: ‘name‘, val: ‘id‘, data: data, change: function(obj){
			var ind = obj.index();
			if( obj.val() == arr[ind] ){
				obj.next().val( arr[ind+1] ).change();
			}
		} });
		$this.find("select").eq(0).val(arr[0]).change();
	});

HTML

<dd class="ajax-select" url="index.php?pid=" data="1,2,3">
    <select id="aaa" name="aaa">
        <option value="">请选择</option>
        <option value="1">111</option>
    </select>
</dd>
时间: 2024-08-06 06:02:27

多级下拉框的相关文章

avalon.js 多级下拉框实现

学习avalon.js的时候,有一个多级下拉框的例子,地址 戳这里 代码实现了联动, 但是逻辑上面理解有点难度,获取选择的值 和 页面初始化 功能存在问题. 在写地图编辑的时候,也用到了多级下拉框,特地整理下例子,其中主要实现的难点就是初始化数组的值. var data = [ {"id": 0, "name": "1公司", "grade": -1, "parentid": "-1"}

jquery把给定的json自动生成多级下拉框

<!DOCTYPE html><html><head><meta charset="UTF-8"><link href="public/bootstrap.css" rel="stylesheet"><link rel="icon" href=public/siyecao.png><script src="public/jquery-1.1

jQuery制作简洁的多级联动Select下拉框

今天我们要来分享一款很实用的jQuery插件,它是一个基于jQuery多级联动的省市地区Select下拉框,并且值得一提的是,这款联动下拉框是经过自定义美化过的,外观比浏览器自带的要漂亮许多.另外,这个Select下拉框也可以绑定下拉事件,并获取当前选中项的值. html代码: <div class="wrap">        <div class="nice-select" name="nice-select">   

bootstrap 多级联动下拉框

<!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Bootstrap 3 的多级下拉菜单示例</title> <script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.0/jquery.

DroDownList控件多级下拉菜单

后台代码: /// <summary> /// 绑定下拉菜单 /// </summary> private void BindDropList() { DataTable dt = bacManage.GetAllArticleCategory(); CreateLevelDropDown(drpCategoryId, dt); } /// <summary> /// 创建分级下拉框 /// </summary> /// <param name=&qu

一款基于jQuery的联动Select下拉框

今天我们要来分享一款很实用的jQuery插件,它是一个基于jQuery多级联动的省市地区Select下拉框,并且值得一提的是,这款联动下拉框是经过自定义美化过的,外观比浏览器自带的要漂亮许多.另外,这个Select下拉框也可以绑定下拉事件,并获取当前选中项的值. 在线预览   源码下载 实现的代码. html代码: <div class="wrap"> <div class="nice-select" name="nice-select&

下拉框联动方法封装

业务中经常需要对数据进行下拉框的联动选择操作,可以假设成省份城市 省份城市县这样的多级联动 客户那边提供的数据大多为excel,格式都属于标准一行列的 假设需要对省份城市进行联动 实现如下 1 var pcd = []; 2 pcd[0] = ['北京', '北京']; 3 pcd[1] = ['天津', '天津']; 4 pcd[2] = ['河北', '石家庄']; 5 pcd[3] = ['河北', '唐山']; 6 pcd[4] = ['山西', '太原']; 7 pcd[5] = ['

Easyui多个下拉框联动效果

好久没写前端了,以前在做多级联动的时候,用的是easyui的tree结构,但是需要一次性全部加载,不是按需加载,性能不好,退而求其之,用多个下拉框做 eayui的combobox  有onSelect,onLoadSuccess等方法,具体可以看http://www.jeasyui.net/plugins/169.html文档API 1.html <table style="padding:10px 20px 10px 40px;"> <tr> <td&g

读取mysql中的特定列值放入页面的下拉框中

1.使用的技术:JSP,Spring JDBC(Mapper) 2.代码 2.1 接口 public interface IMeetingRoomDao { public List<Mrcap> selectCap(); public List<Mrfloor> selectFloor(); } 2.2 实现类 @Override public List<Mrcap> selectCap() { List<Mrcap> caplist = new Array