您的位置:首页 > Web前端 > JQuery

联动下拉框 jquery 插件(二)

2011-06-04 16:44 330 查看


<selectid="Select1"></select>

<selectid="Select2"></select>

<selectid="Select3"></select>

<selectid="Select4"></select>


<scriptsrc="Scripts/jquery-1.6.1.min.js"type="text/javascript"></script>

<scriptsrc="Scripts/jQuery.CascadingSelect.js"type="text/javascript"charset="gb2312"></script>


$(function(){

$("#Select1").FillOptions("Ajax/AreaHandler.ashx",{

textfield:"RegionName",

valuefiled:"RegionId"

});


$("#Select1").CascadingSelect($("#Select2"),"Ajax/AreaHandler.ashx",{

textfield:"ProvinceName",

valuefiled:"ProvinceId",

parameter:"r"

},

function(){

$("#Select2,#Select3,#Select4").empty().append('<option>--请选择--</option>').attr('disabled','disabled');

});

$("#Select2").CascadingSelect($("#Select3"),"Ajax/AreaHandler.ashx",{

textfield:"CityName",

valuefiled:"CityId",

parameter:"p"

},

function(){

$("#Select3,#Select4").empty().append('<option>--请选择--</option>').attr('disabled','disabled');

});

$("#Select3").CascadingSelect($("#Select4"),"Ajax/AreaHandler.ashx",{

textfield:"DistrictName",

valuefiled:"DistrictId",

parameter:"c"

});


json格式同上篇



后台参数:

if(context.Request.Params["p"]!=null)

{

sql=String.Format("SELECTCityId,CityNameFROMT_CityWHEREProvinceId='{0}'",context.Request.Params["p"]);

}


插件(jQuery.CascadingSelect.js):


(function($){$.fn.FillOptions=function(url,options){
options=$.extend({textfield:'text',
valuefiled:'value',
selectedindexid:0,
parameter:''
},options||{});

$this=$(this);
if($this.children().length===0){$this.append('<option>--请选择--</option>').attr('disabled','disabled');
}
$this.empty().attr('disabled','disabled')
.append('<option>Loadingoptions</option>');

$.getJSON(url,function(response){if(response.count>0){$this.empty().removeAttr("disabled");
$this.append('<option>-请选择-</option>');
$.each(response.data,function(i,item){$this.append($("<option></option>")
.attr("value",eval("item."+options.valuefiled))
.text(eval("item."+options.textfield)));
});
}else{$this.empty().prop("disabled",true)
.append('<option>Noelementsfound</option>');
}})
}
$.fn.CascadingSelect=function(target,url,options,endfn){if(target[0].tagName!="SELECT")throw"targetmustbeSELECT";
if(url.length===0)throw"requestisrequired";
if(options.parameter===undefined)throw"parameterisrequired";
$(this).bind("change",function(){varnewurl="";
urlstr=url.split("?");
newurl=urlstr[0]+"?"+options.parameter+"="+$(this).val();
target.FillOptions(newurl,options);
if(typeofendfn=="function"){endfn();}})
}
$.fn.AddOption=function(text,value,selected,index){option=newOption(text,value);
this[0].options.add(option,index);
this[0].options[index].selected=selected;
}
})(jQuery);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: