>웹 프론트엔드 >JS 튜토리얼 >JQUERY_jquery를 기반으로 한 다단계 연결 코드

JQUERY_jquery를 기반으로 한 다단계 연결 코드

WBOY
WBOY원래의
2016-05-16 17:56:501054검색

jquery.select.more.js

코드 복사 코드는 다음과 같습니다.

(function($){
$.fn.doselectmore = function(settings) {
var dfop ={
namekey: "이름",
pnamekey: "이름" ,
idkey: "id",
selectname:"sel",
메서드: "POST",
데이터 유형: "json",
param:{},
pval: null,
chckval:null,
chckvalarry:null,
pname:false,
nname:false,
vl:0,
url: false,
data: false
};
$.extend(dfop, 설정);
//alert(eobj(dfop))
var me = $(this)
if(!dfop.nname) ){
dfop.nname = (dfop.selectname (dfop.vl 1))
}
if((!dfop.pname)&&dfop.vl>0){
dfop.pname = dfop.selectname (dfop.vl-1);
}
if(!dfop.data){
if (dfop.url) {
var param =
$. ajax({
유형: dfop.method,
url: dfop.url,
데이터: dfop.param,
dataType: dfop.datatype,
성공: 함수(데이터){
dfop.data=data;
selectmorebuilder(me,dfop);
},
error:(function(request,status,err){
var errText = request.responseText;
var ErrMessage = "화면 출력" request.status "화면 출력", ";
ErrMessage = "错误内容为:" request.statusText "n" errText.substring(errText.indexOf("
") 5,errText.indexOf("
"));
alert(ErrMessage);
})
});
}
}else{
selectmorebuilder(me,dfop)
}
function selectmorebuilder(thisme ,df) {
if(df.chckval!=null&&df.chckvalarry==null){
var pid=df.chckval;
var k=1;
df.chckvalarry = new Array( );
df.chckvalarry.push(pid);
while(k>0){
k=0
$.each(df.data, function(i, item) 🎜>if(item[df.idkey]==pid&&item[df.pnamekey]!=df.pval){
pid=item[df.pnamekey]
df.chckvalarry.unshift(pid); 🎜>k ;
}
});
}
}
// Alert(eobj(df.chckvalarry))
var select = $("");
sdiv.append(선택);
sdiv.get(0).t=df;
}else{
thisme.removeselectmore();
sdiv = $("input[name=" df.selectname "]").parent();
sdiv.append(선택);
}
select.empty();
var counti = 0;
$.each(df.data, function(i, item){
if(item[df.pnamekey]==df.pval){
select.append("");
counti ;
}
});
if (counti == 0) {
select.remove();
}
else {
select.change(function(){
var nselect = $("#" $(this).attr("nname"));
if (nselect .length == 0) {
nselect = $("")
sdiv.append(nselect)
}
nselect.doselectmore({
namekey: df.namekey,
pnamekey: df.pnamekey,
idkey: df.idkey,
selectname: df.selectname,
param: df.param,
pval: $ (this).val(),
vl: df.vl 1,
chckvalarry:sdiv.get(0).t.chckvalarry,
data: df.data
}); >});
if(df.chckvalarry!=null){
if(df.chckvalarry.length>=df.vl)
select.val(df.chckvalarry[df.vl]);
}
if(df.vl==1&&df.chckvalarry!=null&&df.chckvalarry[1]!=select.val()){
var ddf = sdiv.get(0).t;
ddf.chckvalarry=null;
ddf.chckval=null;
sdiv.get(0).t=ddf;
}
select.change();
$("input[type=hidden][name=" df.selectname "]").val($("input[type=hidden][name=" df.selectname "]").getselectmoreval() );
}
}
};
$.fn.getselectmoreval = function(){
var me = $(this);
if(me.size()==0) return;
var sdiv = me.parent();
if(sdiv.size()==0) return;
var df = sdiv.get(0).t;
var nselect = $("#" df.selectname df.vl);
var v = null;
while(nselect.size()>0){
v = nselect.val();
nselect = $("#" nselect.attr("nname"));
}
return v;
};
$.fn.setselectmoreval = function(idv){
var me = $(this);
if(me.size()==0) return;
var sdiv = me.parent();
if(sdiv.size()==0) return;
var df = sdiv.get(0).t;
df.chckval=idv;
if(idv!=null){
var pid=df.chckval;
var k=1;
df.chckvalarry = 새 배열();
df.chckvalarry.push(pid);
동안(k>0){
k=0;
$.each(df.data, 함수(i, 항목){
if(item[df.idkey]==pid&&item[df.pnamekey]!=df.pval){
pid=item [df.pnamekey];
df.chckvalarry.unshift(pid)
k
}
});
}
}
sdiv.get(0).t=df;
var nselect = $("#" df.selectname df.vl);
nselect.val(df.chckvalarry[0]);
nselect.change();
};
$.fn.removeselectmore = function(){
if($(this).attr("nname")!=null){
$("#" $(this).attr(" n이름")).removeselectmore();
}
$(this).remove();
};
})(jQuery);


help.html
复aze代码 代码如下:



<머리>








여기에 제목을 삽입하세요

<본문>
방법명:doselectmore

사용途:实例化一个对象为多选框

예:html
 <br><!--head--> <br><script src="jquery.select.more.js" type="text/javascript"/></script> <br><!--body--> <br><input type="text" name="illegbasinfo"> <br>

js:
 <br>/**<br>다음 ※ 필수, ★는 선택, ?는 필수 아님<br>※namekey: 데이터 유형 표시 이름, <br>※pnamekey: 데이터 상위 기본 키 이름, <br>※idkey: 데이터 기본 키 이름 , <br>※selectname: 선택 상자 이름, <br>※pval: 1레벨 상위 노드 값, <br>?chckval: 기본 선택, <br>★url: false, <br>?param: url 사용법 통과 시 매개변수에서 <br>★data: false <br>**/ <br>$("input[name=illegbasinfo]").doselectmore({ <br>url:'../../../abc/dic/illbasinfo/ loadall.do', <br>pval:0, <br>namekey: "illegbasinfo", <br>pnamekey: "parillegbasid", <br>idkey: "illegbasinfoid", <br>selectname:"illegbasinfo" <br> }); <br>

방법명:doselectmore

사용途:得到选中对象值

예:js:
 <br>$("input[name=test1]").click(function(){ <br>alert($("input[name=illegbasinfo]").getselectmoreval()); <br>}); <br>

방법 이름:setselectmoreval(val)

사용途:为多选框设置值

예:js:
 <br>$("input[name=test2]").click(function(){ <br>$("input[name=illegbasinfo]").setselectmoreval(347); <br>}); <br>



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.