我想在JSP页面上做一个弹出的查询窗口,用层也可以。主要是想做类似windows里帮助文件的索引那种,能够追踪用户的输入内容进行查询筛选。
请大虾们帮帮小弟吧!有示例代码最好!

解决方案 »

  1.   

    我在线等着呢....SOS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
      

  2.   

    这里有一段搜索的代码
    你可以动态生成JS中的被搜索内容
    试着把那种提示框改成select
    搜索的原理是一样的
    希望对你有帮助-----------------
    <script language="javascript">
    var intIndex=0;arrList = new Array();
    arrList[intIndex++] = "1sdfsdf.com";
    arrList[intIndex++] = "a11sdafs.net";
    arrList[intIndex++] = "b22dsafsdf";
    arrList[intIndex++] = "c333asdfsadf";
    arrList[intIndex++] = "4444dsafasdf";
    arrList[intIndex++] = "dddsfddsafdsaf";
    arrList[intIndex++] = "121213dsafsdaf";
    arrList[intIndex++] = "43213asdfadsf";
    arrList[intIndex++] = "dsa3121dasf3";
    arrList[intIndex++] = "a213";
    arrList[intIndex++] = "323313";
    arrList[intIndex++] = "3213";
    arrList[intIndex++] = "32213";
    arrList[intIndex++] = "dsfsdddd";
    arrList[intIndex++] = "ds11dfsfd";
    arrList[intIndex++] = "ffdafd";
    arrList[intIndex++] = "afdfd";
    arrList[intIndex++] = "afd";
    arrList[intIndex++] = "baffad";
    arrList[intIndex++] = "2fda2fd";
    arrList[intIndex++] = "dasd";function smanPromptList(arrList,objInputId){
    this.style = "background:#E8F7EB;border: 1px solid #CCCCCC;font-size:14px;cursor: default;"
    if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!');return ;}
    window.onload =function() {
                                     arrList.sort(function(a,b){
                                              if(a.length>b.length)return 1;
                                             else if(a.length==b.length)return a.localeCompare(b);
                                             else return -1;
                                    })
      var objouter=document.getElementById("__smanDisp") //显示的DIV对象
      var objInput = document.getElementById(objInputId); //文本框对象
      var selectedIndex=-1;
      var intTmp; //循环用的:)
      if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;}
       //文本框失去焦点
       objInput.onblur=function(){
        objouter.style.display='none';
       }
       //文本框按键抬起
       objInput.onkeyup=checkKeyCode;
       //文本框得到焦点
       objInput.onfocus=checkAndShow;
       function checkKeyCode(){
        var ie = (document.all)? true:false
        if (ie){
         var keyCode=event.keyCode
         if (keyCode==40||keyCode==38){ //下上
          var isUp=false
          if(keyCode==40) isUp=true ;
          chageSelection(isUp)
         }else if (keyCode==13){//回车
          outSelection(selectedIndex);
         }else{
          checkAndShow()
         }
        }else{
         checkAndShow()
        }
        divPosition()
       }   function checkAndShow(){
          var strInput = objInput.value
          if (strInput!=""){
           divPosition();
           selectedIndex=-1;
           objouter.innerHTML ="";
           for (intTmp=0;intTmp<arrList.length;intTmp++){
            if (arrList[intTmp].substr(0, strInput.length).toUpperCase()==strInput.toUpperCase()){
             addOption(arrList[intTmp]);
            }
           }
           objouter.style.display='';
          }else{
           objouter.style.display='none';
         }
         function addOption(value){
          objouter.innerHTML +="<div onmouseover=\"this.className='sman_selectedStyle'\" onmouseout=\"this.className=''\" onmousedown=\"document.getElementById('"+objInputId+"').value='" + value + "'\">" + value + "</div>" 
         }
       }
       function chageSelection(isUp){
        if (objouter.style.display=='none'){
         objouter.style.display='';
        }else{
         if (isUp)
          selectedIndex++
         else
          selectedIndex--
        }
        var maxIndex = objouter.children.length-1;
        if (selectedIndex<0){selectedIndex=0}
        if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
        for (intTmp=0;intTmp<=maxIndex;intTmp++){     if (intTmp==selectedIndex){
          objouter.children[intTmp].className="sman_selectedStyle";
         }else{
          objouter.children[intTmp].className="";
         }
        }
       }
       function outSelection(Index){
        objInput.value = objouter.children[Index].innerText;
        objouter.style.display='none';
       }
       function divPosition(){
        objouter.style.top =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);
        objouter.style.left =getAbsoluteLeft(objInput); 
        objouter.style.width=getAbsoluteWidth(objInput)
       }
    }
    document.write("<div id='__smanDisp' style='position:absolute;display:none;" + this.style + "' onbulr> </div>");
    document.write("<style>.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
    function getAbsoluteHeight(ob){
      return ob.offsetHeight
    }
    function getAbsoluteWidth(ob){
      return ob.offsetWidth
    }
    function getAbsoluteLeft(ob){
      var mendingLeft = ob .offsetLeft;
      while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
       mendingLeft += ob .offsetParent.offsetLeft;
       mendingOb = ob.offsetParent;
      }
      return mendingLeft ;
    }
    function getAbsoluteTop(ob){
      var mendingTop = ob.offsetTop;
      while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
       mendingTop += ob .offsetParent.offsetTop;
       ob = ob .offsetParent;
      }
      return mendingTop ;
    }
    }
    smanPromptList(arrList,"inputer")
    </script><input type="text" id="inputer">
      

  3.   

    在jsp上执行本地代码
    执行hlp帮助文件
      

  4.   

    用ajax..
    ajax方面的书籍有这方面的完整代码
    google搜索下