Autocomplete Textbox Example javascript实现自动完成成功

Autocomplete Textbox Example javascript实现自动完成成功
关键字:Autocomplete、Textbox、Example、javascript实现自动完成成功

复制代码 代码如下:

<SCRIPT language=JScript type=text/javascript> 
var isOpera = navigator.userAgent.indexOf("Opera") > -1; 
var isIE = navigator.userAgent.indexOf("MSIE") > 1 && !isOpera; 
var isMoz = navigator.userAgent.indexOf("Mozilla/5.") == 0 && !isOpera; 
function textboxSelect (oTextbox, iStart, iEnd) { 
   switch(arguments.length) { 
       case 1: 
           oTextbox.select(); 
           break; 
       case 2: 
           iEnd = oTextbox.value.length; 
           /* falls through */ 

       case 3:          
           if (isIE) { 
               var oRange = oTextbox.createTextRange(); 
               oRange.moveStart("character", iStart); 
               oRange.moveEnd("character", -oTextbox.value.length + iEnd);      
               oRange.select();                                              
           } else if (isMoz){ 
               oTextbox.setSelectionRange(iStart, iEnd); 
           }                     
   } 
   oTextbox.focus(); 

/*
function textboxReplaceSelect (oTextbox, sText) { 
   if (isIE) { 
       var oRange = oTextbox.createTextRange(); 
       oRange.text = sText; 
       oRange.collapse(true); 
       oRange.select();                                 
   } else if (isMoz) { 
       var iStart = oTextbox.selectionStart; 
       oTextbox.value = oTextbox.value.substring(0, iStart) + sText + oTextbox.value.substring(oTextbox.selectionEnd, oTextbox.value.length); 
       oTextbox.setSelectionRange(iStart + sText.length, iStart + sText.length); 
   } 
   oTextbox.focus(); 

*/
function autocompleteMatch (sText, arrValues) { 
   for (var i=0; i < arrValues.length; i++) { 
       if (arrValues[i].indexOf(sText) == 0) { 
           return arrValues[i]; 
       } 
   } 
   return null; 

function autocomplete(oTextbox, oEvent, arrValues) { 
   switch (oEvent.keyCode) { 
       case 38: //up arrow  
       case 40: //down arrow 
       case 37: //left arrow 
       case 39: //right arrow 
       case 33: //page up  
       case 34: //page down  
       case 36: //home  
       case 35: //end                  
       case 13: //enter  
       case 9: //tab  
       case 27: //esc  
       case 16: //shift  
       case 17: //ctrl  
       case 18: //alt  
       case 20: //caps lock 
       case 8: //backspace  
       case 46: //delete 
           return true; 
           break; 
       default: 
     // 下面这一行用处不大(被注释)
           //textboxReplaceSelect(oTextbox, isIE ? oTextbox.value/*oEvent.keyCode*/ : oEvent.charCode); 
           var iLen = oTextbox.value.length; 
           var sMatch = autocompleteMatch(oTextbox.value, arrValues); 
           if (sMatch != null) { 
               oTextbox.value = sMatch; 
               textboxSelect(oTextbox, iLen, oTextbox.value.length); 
           }  

           return false; 
   } 

       </SCRIPT>
<SCRIPT> 
               var arrValues = ["red", "orange", "yellow", "green", "blue", "indigo", "violet", "brown"]; 
       </SCRIPT>
<H2>Autocomplete Textbox Example</H2>
<P>Type in a color in lowercase:输入一个以小写字母开头的颜色(英文单词,比如:r、 b等)<BR><INPUT id=txt1 onkeyup="return autocomplete(this, event, arrValues)"></P>