打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
google搜索下拉框的dwr实现
Java代码  
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <html>  
  3. <head>  
  4. <title>Google Suggest</title>  
  5. <link href="css/style.css" rel="stylesheet" type="text/css">  
  6. <script type="text/javascript" src="dwr/engine.js"></script>  
  7. <script type="text/javascript" src="dwr/util.js"></script>  
  8. <script type="text/javascript" src="dwr/interface/T1.js"></script>  
  9. <script type="text/javascript">  
  10.   
  11. var arrOptions = new Array();  
  12.     var theTextBox;  
  13.     var currentValueSelected = -1;//表当前选中的某项  
  14.     //以上设置一些全局变量  
  15.     window.onload = function(){  
  16.     var elemSpan = document.createElement("span");//在页面创建span标签  
  17.     elemSpan.id = "spanOutput";  
  18.     elemSpan.className = "spanTextDropdown";  
  19.     document.body.appendChild(elemSpan);  
  20.     document.Form1.txtUserInput.onkeyup = test1;//当按键抬起调用此函数  
  21.     }  
  22.     
  23. function test1(){  
  24.    var intKey = -1;  
  25.         var temp="";  
  26.         if(window.event){  
  27.         intKey = event.keyCode;  
  28.         theTextBox = event.srcElement;//获得事件源  
  29.         }  
  30.     if(theTextBox.value.length == 0){  
  31.             HideTheBox();  
  32.             return false;  
  33.         }  
  34.         if(intKey == 13){//按回车键           
  35.             SetText();  
  36.             theTextBox.blur();  
  37.             return false;  
  38.         }else if(intKey == 38){//按向上键     
  39.             MoveHighlight(-1);  
  40.             return false;  
  41.         }else if(intKey == 40){ //按向下键    
  42.             MoveHighlight(1);  
  43.             return false;  
  44.         }  
  45.     //if($("txtUserInput").value==""||$("txtUserInput").value==temp)return;  
  46.     T1.findmatches(//dwr技术,后台连接数据库  
  47.         $("txtUserInput").value,  
  48.         function(datas){  
  49.             arrOptions=datas;  
  50.             Bulid(arrOptions);//建立下拉框  
  51.             //temp = $("txtUserInput").value;  
  52.         }  
  53.     );  
  54. }  
  55. function Bulid(arrOptions){  
  56.         var inner="";  
  57.          SetElementPosition();//设置下拉框出现的位置  
  58.         for(var i=0; i < arrOptions.length; i++){  
  59.            inner+="<span id=arr_"+i+" class='spanNormalElement' onmouseover='SetHighColor(this)' onclick='SetText()'><font color=red>"+arrOptions[i]+"</font></span><br>";  
  60.             }  
  61.             document.getElementById("spanOutput").innerHTML = inner;  
  62.          if(inner!=""){  
  63.             document.getElementById("arr_0").className ="spanHighElement";//设置第一个顶为默认选中  
  64.             currentValueSelected=0;  
  65.             }else {HideTheBox();currentValueSelected=-1;}  
  66. }  
  67.   
  68. function SetElementPosition(){//设置下拉框出现的位置  
  69.     var selectedPosX = 0;  
  70.     var selectedPosY = 0;  
  71.     var theElement = document.Form1.txtUserInput;  
  72.     var theTextBoxInt = document.Form1.txtUserInput;  
  73.   
  74.     if (!theElement) return;  
  75.     var theElemHeight = theElement.offsetHeight;  
  76.     var theElemWidth = theElement.offsetWidth;  
  77.   
  78.     while(theElement != null){  
  79.     selectedPosX += theElement.offsetLeft;  
  80.     selectedPosY += theElement.offsetTop;  
  81.     theElement = theElement.offsetParent;  
  82.     }  
  83.     xPosElement = document.getElementById("spanOutput");  
  84.     xPosElement.style.left = selectedPosX;  
  85.     xPosElement.style.width = theElemWidth;  
  86.     xPosElement.style.top = selectedPosY + theElemHeight  
  87.     xPosElement.style.display = "block";  
  88. }  
  89.   
  90.  function MoveHighlight(xDir){//设置上下移动键  
  91.          var currnum=currentValueSelected+xDir;  
  92.         if(currnum >= 0 && currnum<arrOptions.length ){  
  93.          document.getElementById("arr_"+currentValueSelected+"").className ="spanNormalElement";  
  94.          document.getElementById("arr_"+currnum+"").className ="spanHighElement";  
  95.          currentValueSelected=currnum;  
  96.           }else if(currnum==arrOptions.length){  
  97.            document.getElementById("arr_"+currentValueSelected+"").className ="spanNormalElement";  
  98.            currentValueSelected=0;  
  99.            document.getElementById("arr_"+currentValueSelected+"").className ="spanHighElement";  
  100.           }else if(currnum==-1){  
  101.            document.getElementById("arr_"+currentValueSelected+"").className ="spanNormalElement";  
  102.            currentValueSelected=arrOptions.length-1;  
  103.            document.getElementById("arr_"+currentValueSelected+"").className ="spanHighElement";  
  104.           }  
  105.  }  
  106. function HideTheBox(){//隐藏下拉框  
  107.     document.getElementById("spanOutput").style.display = "none";  
  108.     currentValueSelected = -1;  
  109. }  
  110. function SetText(){//选中下拉框中的某个值  
  111.     theTextBox = document.Form1.txtUserInput;  
  112.     theTextBox.value = arrOptions[currentValueSelected];  
  113.     document.getElementById("spanOutput").style.display = "none";  
  114.     $("txtUserInput").setValue=theTextBox.value;  
  115.     currentValueSelected = -1;   
  116. }  
  117.       
  118. function SetHighColor(theTextBox){//当鼠标划过变为选中状态  
  119.     if(theTextBox){  
  120.         currentValueSelected =  
  121.         theTextBox.id.slice(theTextBox.id.indexOf("_")+1,  
  122.         theTextBox.id.length);  
  123.     }  
  124.     for(var i = 0; i < arrOptions.length; i++){  
  125.         document.getElementById('arr_' + i).className ='spanNormalElement';  
  126.     }  
  127.     document.getElementById('arr_'+currentValueSelected).className = 'spanHighElement';  
  128. }  
  129. </script>  
  130. </head>  
  131. <body >   
  132. <div align="center">  
  133. <form name="Form1" autocomplete="off" ID="Form1" action="%">     
  134. 请输入: <input type="text" name="txtUserInput"/><input type="button" value="搜索"/>  
  135. </form>  
  136. </div>  
  137. </body>  
  138. </html>  
  139.   
  140.   
  141.   
  142.   
  143. style.css  
  144. span.spanTextDropdown{ position: absolute;  
  145. top: 0px;  
  146. left: 0px;  
  147. width: 150px;  
  148. z-index: 101;  
  149. background-color: #C0C0C0;  
  150. border: 1px solid #000000;  
  151. padding-left: 2px;  
  152. overflow: visible;  
  153. display: none;  
  154. }  
  155.   
  156. span.spanMatchText{ text-decoration: underline;  
  157. font-weight: bold; }  
  158. span.spanNormalElement{ background: #C0C0C0; }  
  159. span.spanHighElement{ background: #000040;  
  160. color: white;  
  161. cursor: pointer; }  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
原生JavaScript精选好用的代码片段
DOM - 封装函数
网站首页弹出框只弹出一次,关闭后也会再出现,设置cookie
js验证文本框只能输入手机号和电话号
原生js实现图片切换
顺序跳跃显示数组中的值
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服