最近读JS高级程序设计,获益多多,以下贴出用JS创建自动提示的对话框,可以从中学习到: 1.将一些相似的方法封装到一个虚拟类中,从而充分体现面向对象的思想 2.方法的层层嵌套调用 var TextUtil=new Object(); var ListUtil=new Object(); ListUtil.remove=function(oListbox,iIndex) { oListbox.remove(iIndex); } ListUtil.clear=function(oListbox) { for(var i=oListbox.options.length-1;i>=0;i--) { ListUtil.remove(oListbox,i); } } ListUtil.add=function(oListbox,sName,sValue) { var oOption=document.createElement("option"); oOption.appendChild(document.createTextNode(sName)); if(arguments.length==3) { oOption.value=sValue; } oListbox.appendChild(oOption); } TextUtil.autosuggestMatch=function(sText,arrValues) { var arrResult=new Array; if(sText!="") { for(var i=0;i<arrValues.length;i++) { if(arrValues[i].indexOf(sText)==0) { arrResult.push(arrValues[i]); } } } return arrResult; } TextUtil.autosuggest=function(oTextbox,arrValues,sListboxId) { var oListbox=document.getElementById(sListboxId); ListUtil.clear(oListbox); var arrMatches=TextUtil.autosuggestMatch(oTextbox.value,arrValues); for(var i=0;i<arrMatches.length;i++) { ListUtil.add(oListbox,arrMatches[i]); } } var arrColors=["red","orange","yellow","purple","pink","ress","gray","grbu"]; arrColors.sort(); function setText(oListbox,sTextboxId) { var oTextbox=document.getElementById(sTextboxId); if(oListbox.selectedIndex>-1) { oTextbox.value=oListbox.options[oListbox.selectedIndex].text; } } 以下是HTML代码 <input type="text" value="" id="txtColor" οnkeyup="TextUtil.autosuggest(this,arrColors,'lstColors')" /><br /> <select id="lstColors" size="5" style="width:200px" οnclick="setText(this,txtColor)"></select>