亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于jquery的選擇標(biāo)簽至文本域效果,可多選/可過濾重復(fù)/可限制個(gè)數(shù)的實(shí)現(xiàn)代碼

 更新時(shí)間:2010年11月14日 19:03:21   作者:  
選擇標(biāo)簽至表單域插件, 基于jQuery, 可多選/可過濾重復(fù)/可限制個(gè)數(shù). 是以前的項(xiàng)目中用到過的一個(gè)項(xiàng)目, 當(dāng)初是用原生js東拼西湊的, 用jQuery重寫了下,已封裝成插件.
暫時(shí)沒有對(duì)手動(dòng)輸入的做判斷, 需要的話, 可自行在keyup及change事件中添加相關(guān)判斷.
相關(guān)說明及調(diào)用方法,請參見代碼中的注釋.
演示及代碼:

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]

復(fù)制代碼 代碼如下:

;(function(){
$.fn.extend({
iSelectTags:function(options){
var iset={
name:'.tagsbox',//表單或class或id名
drop:$('#dropbox'),//彈出框定位
pseudoClass:$('#dropbox>p>a'),//可選擇的標(biāo)簽定位
close:$('em.close'),//關(guān)閉按鈕定位
separator:',',//標(biāo)簽間分隔符,建議使用英文逗號(hào)
maxCount:10 //默認(rèn)限制個(gè)數(shù),也可以設(shè)置表單的data-count值覆蓋默認(rèn)值
}
options = options || {};
$.extend(iset, options);

var _input=$(iset.name);
var _inputVal=_input.val();
var _arr=new Array(); //存放標(biāo)簽的數(shù)組
var _left=_input.offset().left; //左絕對(duì)距離
var _top=_input.offset().top+_input.outerHeight(); //上絕對(duì)距離,此處要加上表單的高度
var _dropW=_input.outerWidth()-parseInt(_input.css('border-left-width'))-parseInt(_input.css('border-right-width'))-parseInt(iset.drop.css('paddingLeft'))-parseInt(iset.drop.css('paddingRight'));
iset.drop.css({'position':'absolute','left':_left+'px','top':_top+'px','width':_dropW+'px'});
//彈出框的寬度,此處計(jì)算的是與表單實(shí)際寬度相等的.也可以直接在樣式中定義.
var _txt=null;
var _maxCount=parseInt(_input.attr('data-count'));//限制選擇個(gè)數(shù)
if(isNaN(_maxCount)){
_maxCount=iset.maxCount
}

_input.click(function(){
iset.drop.show();
iset.drop.bgiframe();//調(diào)用bgiframe插件,解決ie6下select的z-index無限大問題
}).bind('keyup change',function(){
//可以在此處擴(kuò)展手動(dòng)輸入標(biāo)簽情況下的相關(guān)判斷
//if語句可避免清空重新選擇時(shí)第一個(gè)字符為逗號(hào)
if ($(this).val() == '') {
_arr = new Array();
}else {
_arr = $(this).val().split(iset.separator);//當(dāng)用戶手動(dòng)刪除或修改標(biāo)簽值后更新標(biāo)簽值
}
});

$(document).click(function(e){
//點(diǎn)擊非彈出框區(qū)域時(shí)關(guān)閉彈出框
//下面的 if語句是用來判斷傳入的是class還是id
if(iset.name.charAt(0)=='#'){
if(e.target.id!=iset.name.substring(1)){
iset.drop.hide();
}
}else if(iset.name.charAt(0)=='.'){
if(e.target.className!=iset.name.substring(1)){
iset.drop.hide();
}
}
});

iset.drop.click(function(e){
//阻止彈出框區(qū)域默認(rèn)事件
e.stopPropagation();
});

iset.pseudoClass.click(function(){
//標(biāo)簽選擇
_txt=$(this).text();
//下面的$.inArray是用來判斷是否重復(fù)
//若想反饋重復(fù)提示或走出限制個(gè)數(shù)提示,可改進(jìn)下面的if語句
if(($.inArray(_txt,_arr)==-1) && (_arr.length<_maxCount )){
_arr.push(_txt);
_inputVal=_arr.join(iset.separator);
_input.val(_inputVal);
}

});
//關(guān)閉按鈕
iset.close.click(function(){
iset.drop.hide();
});
}
});
})(jQuery);

原文發(fā)布于Mr.Think的博客:http://mrthink.net/jquery-plugin-iselecttags/

相關(guān)文章

最新評(píng)論