输入框中用onkeyUp事件调用方法获取值
    <input type="text" name="accountId" id="accountId_id"  onkeyup="displayId();showLayer('search_suggest',this);"  autocomplete="off"/>
    <div  id="search_suggest"  style="display: none; position: absolute;" ></div><script type="text/javascript">
    function displayId()
    {
      var id = trim(document.getElementById("accountId_id").value);
      if(id.length == 0)
      {
          return false;
      }
      else
      {
             //请求的地址   
               var url = 'Ajax_Autocompleter.action';   
               var param = trim(Form.Element.serialize('accountId'));
               var myAjax = new Ajax.Request(   
             url,   
             {   
                 method:'post',   
                   parameters:param,   
                   onComplete: processResponse1,   
                   asynchronous:true   
             });  
      }
    }
    function processResponse1(request)   
    {   
       var ids = new Object();
       ids = request.responseText.parseJSON();   //获取数据库返回值
       
       var ss = document.getElementById("search_suggest");
       ss.style.cursor = "pointer";
       ss.innerHTML = "";
       
       var objInput = document.getElementById("accountId_id");
       
       var selectedIndex=-1;
       
       if(ids.vc.length != 0)
       {
          for(var i=0; i< ids.vc.length ; i++ )
          {
               var suggest = "<div onmouseover=\"this.className='sman_selectedStyle'\"";
                   suggest += " onmouseout=\"this.className=''\"";
                   suggest += " onmousedown=\"document.getElementById('accountId_id').value='" + ids.vc[i] + "'\">";
                   suggest += "" + ids.vc[i] + "</div>";
               ss.innerHTML += suggest;
               ss.style.display = "block";
          }
       }else{
            ss.style.display = "none";
       }
            //文本框失去焦点
             objInput.onblur=function(){
                ss.style.display='none';
           }
           //文本框按键抬起
            objInput.OnKeyUp=checkKeyCode; /////////////此处onkeyUp事件和上面飞文本框中事件发生冲突,不想用jquery做,请路过的朋友帮忙解决,谢谢!!!
            //文本框得到焦点
            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();
                    }
                }
            }
            
            function outSelection(Index){
                objInput.value = ss.children[Index].innerText;
                ss.style.display='none';
            }
            
            function chageSelection(isUp)
            {
                if (ss.style.display=='none'){
                    ss.style.display='';
                }else{
                    if(isUp)
                        selectedIndex++
                    else
                        selectedIndex--
                }
                var maxIndex = ss.children.length-1;
                if (selectedIndex <  0){selectedIndex=0}
                if (selectedIndex  > maxIndex) {selectedIndex = 0}
                for (var i = 0;i <= maxIndex ; i++)
                {
                    if (i==selectedIndex){
                        ss.children[i].className="sman_selectedStyle";
                    }else{
                        ss.children[i].className="";
                    }
                }
            }
    }
</script>

解决方案 »

  1.   

    设置一个int类型通过改变他的值判断是哪个KEYUP事件……
      

  2.   

    var abc=objInput.OnKeyUp;
    objInput.OnKeyUp=function(){checkKeyCode();return abc();} 
      

  3.   

    不明白什么叫飞文本框,不过你要区别,可以给方法加一个参数,一个调用时使用参数,一个不用,,判断参数是否为null就行了
      

  4.   

    to: sohighthesky 
    实在不好意思,打错字了,不是‘飞文本框’,是‘输入框’
      

  5.   

    我觉得应该不是方法参数的问题吧,不是方法名相同而要区分,是onKeyUp事件怎么判断
      

  6.   

    不是,是要在文本框中输入值时不要激活 objInput.OnKeyUp=checkKeyCode;