项目中经常用到级联下拉框,虽然是一个简单的功能,但每用到一次写一次,用到一次写一次,也烦,找原来写的也烦,这次重新写一个放到iteye(第一次用这新名)这里,以后用到的时候随时可以找到,也顺便和大家分享一下,很简单的一段代码:
<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script language="javascript" type="text/javascript">
(function($){
$.fn.extend({
loadSelect:function(opt){
var defaultOpt={
url:"select.json",
pid:""
};
var opts = $.extend(defaultOpt,opt);
var $this=$(this);
$.getJSON(opts.url,function(json){
var html='<select οnchange="javascript:$(this).selectSelect()"><option value="0">请选择</option>';
$.each(json,function(i,n){
html+= '<option value="'+n.id+'">'+n.text+"</option>\n";
});
html += "</select>\n";
$this.append(html);
});
},
selectSelect:function(opt){
var defaultOpt={
url:"select_data.json",
pid:""
};
var opts = $.extend(defaultOpt,opt);
var $this=$(this);
$this.nextAll().remove();
$.getJSON(opts.url,function(json){
var html='<select οnchange="javascript:$(this).selectSelect(this)"><option value="0">请选择</option>';
$.each(json,function(i,n){
html+= '<option value="'+n.id+'">'+n.text+"</option>\n";
});
html += "</select>\n";
$this.after(html);
});
}
});
})(jQuery);
$(function(){$("#cascade").loadSelect({url:"select_data.json"});});
</script>
</head>
<body>
<div id="cascade">
</div>
</body>
</html>
当然,这段代码功能还有很多改进的地方,比如下拉框的个数初始化,以及联动的初始化等等。有兴趣的朋友或者已经有实现了的朋友也请分享下。