一。得到數據集函數://數據集的填充可以用AJAX
??????? function loadUserAddressData()
??? {
???? var emails = new Array();
?
? ? var address = new addressBook("ly-dh","ly-dh@cc.com","group");
?? ?emails[emails.length] = address;
?
? ? ?var address = new addressBook("ly_dh","ly_dh@cc.com","group");
?? ?emails[emails.length] = address;
?
?? var address = new addressBook("ly-td","ly-td@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("drgydsrg","drgydsrg@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("ly_td","ly_td@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("htmeimei","htmeimei@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("enqiu_fj","enqiu_fj@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("chenzhiyou3-","chenzhiyou3-@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("lyzhyuan","lyzhyuan@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("shily8866","shily8866@cc.com.cn","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("eagle_hover","eagle_hover@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("lehmen_163.com","lehmen@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("support_qcidc.com","support@ccc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("qndeny","qndeny@cccom","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("qiuen","qiuen@fjzkx.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("halfpenny","halfpenny@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("srt21","srt21@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("sunsi_163","sunsi_cc@cc.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("qiuen55","qiuen55@yahoo.com.cn","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("tianyi583","tianyi583@cc.com.cn","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("qiull3000","qiull3000@cccom.cn","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("cxj","cxj@ccvicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("51069439","51069439@cc.cn","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("陳峰","chenz@ccvicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("陳錦秀","cjx@cc.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("黃陳林","hcl@cc.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("潘總","pqb@cc.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("小蘇","sufy@cc.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("小莊","zhuangjq@cc.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("尤政偉","yzw@cc.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("余秀容","yxr@cc.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("周海波","zhbs@dd.vicp.net","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("webmaster","webmaster@dd.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("博客園","support@ddd.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("zhbs2002","zhbs2002@dd.com","group");
?? emails[emails.length] = address;
?
?? var address = new addressBook("yanyan123","yanyan123@dd.163.com","group");
?? emails[emails.length] = address;
?
? emails.sort();
? return emails;
}
function addressBook(nickname,email,group){
?this.nickname = nickname;
?this.email = email;
?this.group = group;
?this.compare = function(compareStr){
??if( startWithStr(nickname,compareStr) || startWithStr(email,compareStr) ){
??? var str = "";
???if(startWithStr(nickname,compareStr)){
???? ?str += ('"'+this.display(nickname,compareStr.length)+'"');
???}else{
????str += ('"'+nickname+'"');
???}
???if(startWithStr(email,compareStr)){
????str += ('<'+this.display(email,compareStr.length)+'>');
???}else{
????str += ('<'+email+'>');
???}
??? return str;
??}
??return false;
?}
?this.display = function(str,strLen){
??var first = str.substring(0,strLen).bold();
??var last = str.substring(strLen,str.length);
??return (first+last);
?}
?this.tostring = function(){
??return ('"'+nickname+'"')+('<'+email+'>');
?}
}
function show(){
? alert("ASCII代碼是:"+event.keyCode) ; } //鍵盤的ASCII
二、顯示層函數:(對數據集合進行操作既上面得到的數據集)
function displayDIV(e){
if(pressKey == 40 || pressKey == 38){????????????????????? //遇到“(”,“&”返回
? return;
}
?var addressInfo = loadUserAddressData();???? //得到結果集合
?var srcValue = document.getElementById(srcFocusId).value;? //srcFocusId是文本框控件名稱
?//alert(srcValue);
?startPosition = getLastPosition(srcValue);
?var inputValue = srcValue.substring(startPosition+1,srcValue.length);
?inputValue = trim(inputValue);????????????????????? //輸入的EMAIL地址
??????? var displayAll = false;
??????? // 如果是空格鍵,并且輸入的值為空,則默認查詢出所有的數據
??????? if((pressKey == 32) && inputValue == ""){
??????????? displayAll = true;
??????? }else{
??????????? if(inputValue == ""){
????????? ?document.getElementById(divId).style.display = "none";???? //divId是層ID
???????????return;
??????????? }
??????? }
?var matchedList = "";
? ?for(var i=0,j=0;i<addressInfo.length;i++){??????????? //最多群發50個EMAIL地址,addressInfo是EMAIL地址數組
????????? if(j > 50){
???????????? break;
????????? }
????????? var addressBook = addressInfo[i];?????????????? ??
?? // alert(addressBook);
????????? if(displayAll){ //如果是默認查詢全部,則直接將數據顯示
???????????? matchedList += "<div style='border-color: #D9D5EA; border-style: dotted; border-width: 0px 0px 1px;height:20px;line-height:20px;width:100%;' id='eleinfo"+j+"' onclick='selectedRow(this.id);' onMouseOut='MM_returnBg(this.id)' onMouseOver='MM_changeBg(this.id);'>"+addressBook.tostring()+"</div>";
???????????? j++;
???????????? continue;
????????? }
????????? // 否則,按照輸入的字符進行比較
????????? var element = addressBook.compare(inputValue); //與輸入的值進行比較
?? if(element){
????? matchedList += "<div style='border-color: #D9D5EA; border-style: dotted; border-width: 0px 0px 1px;height:20px;line-height:20px;width:100%;' id='eleinfo"+j+"' onclick='selectedRow(this.id);' onMouseOut='MM_returnBg(this.id)' onMouseOver='MM_changeBg(this.id);'>"+element+"</div>";
???????????? j++;
?? }
? ?}
?if(trim(matchedList) == ""){
??document.getElementById(divId).style.display = "none";
??return;
?}
???? alert(matchedList);
?document.getElementById(divId).innerHTML = matchedList+"";
?selectedId = "eleinfo0";
?MM_changeBg(selectedId);
?
?setAddressPosition(srcFocusId);
??????? document.getElementById(divId).scrollTop = 0;
}
function getLastPosition(str){??? //得到EMAIL地址的最后的位置
? var position1 = str.lastIndexOf(",");
? var position2 = str.lastIndexOf(";");
? if(position1 >= position2){
??? return position1;
? }
? return position2;
}
function selectedRow(rowId){???
?var parseTo = document.getElementById(srcFocusId);
?parseTo.focus();
?parseTo.value = parseTo.value.substring(0,startPosition+1);
?document.getElementById(divId).style.display = "none";? //隱藏層
???????
?var content = getInnerText(rowId);? //根據行ID得到EMAIL值
???????document.getElementById("charset_code").style.visibility = "visible";
?if(isExsitInSource(parseTo.value,content)){
??return;
?}
??? parseTo.value += content +",";
}
function getInnerText(id){
? var content = "";
??? if (window.XMLHttpRequest){
?????? content = document.getElementById(id).textContent;
?}else{
?????? content = document.getElementById(id).innerText;
??? }
?return content;
}
//看是否存在EMAIL
function isExsitInSource(source,str){
?source = source.toLowerCase();
?str = str.toLowerCase();
?if(source.indexOf(str) != -1){
??return true;
?}
?return false;
}
function MM_changeBg(id){
??? try{
??? ?MM_returnBg(selectedId);
??? }catch(ex){
??? }
??? changBgColor(id,"#E2F0D9");
??? selectedId = id;
}
function MM_returnBg(id){
?changBgColor(id,"#F8FEF4");
}
ASCII碼 | 鍵盤 | ASCII 碼 | 鍵盤 | ASCII 碼 | 鍵盤 | ASCII 碼 | 鍵盤 |
27 | ESC | 32 | SPACE | 33 | ! | 34 | ? |
35 | # | 36 | $ | 37 | % | 38 | & |
39 | ' | 40 | ( | 41 | ) | 42 | * |
43 | + | 44 | ' | 45 | - | 46 | . |
47 | / | 48 | 0 | 49 | 1 | 50 | 2 |
51 | 3 | 52 | 4 | 53 | 5 | 54 | 6 |
55 | 7 | 56 | 8 | 57 | 9 | 58 | : |
59 | ; | 60 | < | 61 | = | 62 | > |
63 | ? | 64 | @ | 65 | A | 66 | B |
67 | C | 68 | D | 69 | E | 70 | F |
71 | G | 72 | H | 73 | I | 74 | J |
75 | K | 76 | L | 77 | M | 78 | N |
79 | O | 80 | P | 81 | Q | 82 | R |
83 | S | 84 | T | 85 | U | 86 | V |
87 | W | 88 | X | 89 | Y | 90 | Z |
91 | [ | 92 | \\ | 93 | ] | 94 | ^ |
95 | _ | 96 | ` | 97 | a | 98 | b |
99 | c | 100 | d | 101 | e | 102 | f |
103 | g | 104 | h | 105 | i | 106 | j |
107 | k | 108 | l | 109 | m | 110 | n |
111 | o | 112 | p | 113 | q | 114 | r |
115 | s | 116 | t | 117 | u | 118 | v |
119 | w | 120 | x | 121 | y | 122 | z |
123 | { | 124 | | | 125 | } | 126 | ~ |
??