jQuery.fn.ssq = function(opts){ var settings = $.extend({ pre:'' },opts||{}); return this.each(function(indx,elem){ var panel = $(this); function loadSheng(d){ $(".sheng",panel).empty().append(""); $(".shi",panel).empty().append(""); $(".qu",panel).empty().append(""); $.get(settings.pre+"/interface/datadictionary/getAreaList.html",{},function(data){ var html = ""; for(var i=0;i" + data[i]["ADDRESS_NAME"] + ""; } $(".sheng",panel).empty().append(html); initName($(".sheng",panel),1); },'json'); } function loadShi(p,d){ var html = ""; if(p!="") { $(".qu",panel).empty().append(""); $.get(settings.pre+"/interface/datadictionary/getAreaList.html",{"fatherid":p},function(data){ for(var i=0;i" + data[i]["ADDRESS_NAME"] + ""; } $(".shi",panel).empty().append(html); loadQu(""); initName($(".shi",panel),2); },'json'); } else { $(".shi",panel).empty().append(html); loadQu(""); initName($(".shi",panel),2); } } function loadQu(c,d){ var html = ""; if(c!="") { $.get(settings.pre+"/interface/datadictionary/getAreaList.html",{"fatherid":c},function(data){ for(var i=0;i" + data[i]["ADDRESS_NAME"] + ""; } $(".qu",panel).empty().append(html); initName($(".qu",panel),3); },'json'); } } function initName(elem,i) { if(settings.callback) { var data; var v = elem.find("option:selected").val(); if(v=="") { data == ""; } else { data = elem.find("option:selected").text(); } settings.callback(i,data); } } //初始化默认值为0 var def = {sheng:"",shi:"",qu:""}; //判断各下拉框是否有def属性,如果有,则认为是默认值,获取 if($(".sheng",panel).attr("def"))def.sheng = $(".sheng",panel).attr("def"); if($(".shi",panel).attr("def"))def.shi = $(".shi",panel).attr("def"); if($(".qu",panel).attr("def"))def.qu = $(".qu",panel).attr("def"); if($(".sheng",panel).attr("def")&& $(".shi",panel).attr("def") && $(".qu",panel).attr("def")) { loadSheng(def.sheng);loadShi(def.sheng,def.shi);loadQu(def.shi,def.qu); } else { loadSheng(def.sheng); } //绑定事件 $(".sheng",panel).change(function(){ initName($(this),1); return function(p){ loadShi(p.val()); }($(this)); }); $(".shi",panel).change(function(){ initName($(this),2); return function(c){ loadQu(c.val()); }($(this)); }); $(".qu",panel).change(function(){ initName($(this),3); }); }); };