`
jaychaoqun
  • 浏览: 29887 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

jquery select快速选择插件

    博客分类:
  • js
阅读更多
$.fn.selectHelper = function(){
				$(this).bind("keydown",function(){
					getNextKeyItem();
				});
			
				getNextKeyItem = function(){
					var elm = event.srcElement;
                    var index = elm.selectedIndex + 1;
                    do {
                        if (index == elm.length) 
                            index = 0;
                        if (index == elm.selectedIndex) 
                            return false; // 未找到匹配的选项,则退出 
                    }
                    while (key2Char(event.keyCode) != getPinYin(getItemKeyChar(elm.options[index++])));
                    elm.selectedIndex = index - 1; // 选中匹配的选项 
                    return false; // 取消原有的选择功能 
				}
				
				getItemKeyChar = function(option){
					return option.text.charAt(0).toUpperCase();
				}
				
				key2Char = function(key){
					var s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	                if (key >= 97 && key <= 122) 
	                    return s.charAt(key - 97);
	                if (key >= 65 && key <= 90) 
	                    return s.charAt(key - 65);
	                if (key >= 48 && key <= 57) 
	                    return "" + (key - 48);
	                return null;
				}
				
				getPinYin = function(c){
					execScript("tmp=asc(\"" + c + "\")", "vbscript");
	                tmp = 65536 + tmp;
	                if (tmp >= 45217 && tmp <= 45252) 
	                    return "A";
	                if (tmp >= 45253 && tmp <= 45760) 
	                    return "B";
	                if (tmp >= 45761 && tmp <= 46317) 
	                    return "C";
	                if (tmp >= 46318 && tmp <= 46825) 
	                    return "D";
	                if (tmp >= 46826 && tmp <= 47009) 
	                    return "E";
	                if (tmp >= 47010 && tmp <= 47296) 
	                    return "F";
	                if ((tmp >= 47297 && tmp <= 47613) || (tmp == 63193)) 
	                    return "G";
	                if (tmp >= 47614 && tmp <= 48118) 
	                    return "H";
	                if (tmp >= 48119 && tmp <= 49061) 
	                    return "J";
	                if (tmp >= 49062 && tmp <= 49323) 
	                    return "K";
	                if (tmp >= 49324 && tmp <= 49895) 
	                    return "L";
	                if (tmp >= 49896 && tmp <= 50370) 
	                    return "M";
	                if (tmp >= 50371 && tmp <= 50613) 
	                    return "N";
	                if (tmp >= 50614 && tmp <= 50621) 
	                    return "O";
	                if (tmp >= 50622 && tmp <= 50905) 
	                    return "P";
	                if (tmp >= 50906 && tmp <= 51386) 
	                    return "Q";
	                if (tmp >= 51387 && tmp <= 51445) 
	                    return "R";
	                if (tmp >= 51446 && tmp <= 52217) 
	                    return "S";
	                if (tmp >= 52218 && tmp <= 52697) 
	                    return "T";
	                if (tmp >= 52698 && tmp <= 52979) 
	                    return "W";
	                if (tmp >= 52980 && tmp <= 53688) 
	                    return "X";
	                if (tmp >= 53689 && tmp <= 54480) 
	                    return "Y";
	                if (tmp >= 54481 && tmp <= 62289) 
	                    return "Z";
	                return c.charAt(0);
				}
			}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics