在文字框輸入關鍵字會彈出內容提示程式碼例項
當前不少人性化的網站,在文字框或者搜尋框這樣類似的功能下了很多的功夫,能夠在很大程度上提高網站的人性化程度,比如在搜尋框輸入關鍵字的時候,能夠出現相匹配的下來提示內容,如果下拉的內容有使用者需要的選項,那麼就會給使用者帶來不少便利,下面就是一段能夠實現此功能的簡單程式碼,下面就進行一下分享,並對程式碼的實現進行詳細的註釋。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> sources= new Array("www.softwhy.com","www.baidu.com","www.google.com","softwhy.net"); tabinfo = ""; flag=new Array(sources.length); for(var index=0;index<flag.length;index++){ flag[index]=false ; } function immediately(){ var element=document.getElementById("txt"); if("\v"=="v"){ element.onpropertychange=webChange; } else{ element.addEventListener("input",webChange,false); } function webChange(){ var tab = document.all("dl1"); for(var index=0;index<flag.length;index++){ flag[index] = false ;//重新初始化 } if(element.value){ var content=document.getElementById("txt").value; for(var index=0;index<sources.length;index++){ if(sources[index].indexOf(content)!=-1){ flag[index]=true; } } for(var j=0;j<flag.length;j++){ if(flag[j]){ if(tab.rows.length>0){ for(var k=0;k<tab.rows.length;k++){ if(tab.rows[k].cells[0].innerText.indexOf(content) == -1){ tab.deleteRow(k); } } } for(var k=0;k<tab.rows.length;k++){ tabinfo += tab.rows[k].cells[0].innerText; } if(tabinfo.indexOf(sources[j]) == -1){ nrow = tab.insertRow(0); newcell = nrow.insertCell(); newcell.innerHTML = sources[j] } tabinfo = ""; } } } } } var lastObj=null; function setSingleBack(){ event.srcElement.style.background="gray"; forceBackColor(); if(event.srcElement.tagName=="TD"){ lastObj=event.srcElement; } fillData(); } function setAllBack(){ event.srcElement.style.background="#CCCCCC"; } function forceBackColor(){ if(lastObj!=null){ lastObj.style.background="#F8F8FF"; } } function fillData(){ if(lastObj.innerHTML!=null){ document.all.txt.value=lastObj.innerHTML; } } function init(){ layer.style.top=txt.offsetTop+40; layer.style.left=txt.offsetLeft; layer.style.visibility="visible"; } function hideBelow(){ layer.style.visibility="hidden"; } window.onload=function(){ var otxt=document.getElementById("txt"); var odll=document.getElementById("dl1"); immediately(); otxt.onfocus=function(){ init(); } otxt.onblur=function(){ hideBelow(); } odll.onmouseout=function(){ setAllBack(); } odll.onmouseover=function(){ setSingleBack(); } } </script> </head> <body> <input type="text" id="txt" style="height:20px"/> <div id="layer"> <table id="dl1" cellspacing="0" border="0"></table> </div> </body> </html>
相關文章
- jQuery點選文字框清除內容程式碼例項jQuery
- JavaScript讀取文字檔案內容程式碼例項JavaScript
- 當前文字框高亮效果程式碼例項
- jQuery文字框輸入數字彈出格式化層jQuery
- Angular.js 限制輸入框輸入內容,為純數字AngularJS
- textarea文字框高度自適應程式碼例項
- 輸入框跟隨鍵盤彈出/隱藏移動
- JavaScript 文字框只能輸入數字JavaScript
- 文字框限制輸入字數效果
- 禁止文字框滑鼠右鍵黏貼內容
- app直播原始碼,監聽EditText輸入框內輸入內容的變化APP原始碼
- 文字框限制輸入字數的JSJS
- 在echarts中自定義提示框內容Echarts
- 直播平臺原始碼,關於彈出框中輸入框被遮擋問題解決原始碼
- Android文字過長時根據關鍵字省略內容EllipsizeAndroid
- CSS3文字凹凸效果程式碼例項CSSS3
- 手機直播原始碼,關於pyqt5彈出提示框原始碼QT
- Qt 實現文字輸入框,帶字數限制QT
- 【新特性速遞】數字輸入框的字首和字尾(位於輸入框內部)
- 直播網站原始碼,安卓防止輸入框自動彈出網站原始碼安卓
- 中文文字分類:你需要了解的10項關鍵內容文字分類
- CSS3文字陰影效果程式碼例項CSSS3
- 直播小程式原始碼,react-native自定義文字輸入框原始碼React
- 動態顯示:文字框字數(輸入還剩多少字)
- Vue使用antd中input元件去驗證輸入框輸入內容Vue元件
- PHP static 關鍵字和 self 關鍵字例項化的區別PHP
- Android軟鍵盤彈出,覆蓋h5頁面輸入框問題AndroidH5
- 文字框輸入文字倒計詳解
- CSS 自適應內容寬度的輸入框CSS
- Flutter 密碼輸入框 驗證碼輸入框Flutter密碼
- flex彈性佈局程式碼例項Flex
- vue.js輸入框輸入值內容實時跟著變化Vue.js
- input 輸入框只能輸入數字
- 修復安卓鍵盤彈起擋住輸入框bug安卓
- 禁止彈框底部的內容滑動
- 輸入框只能輸入負數,整數,2位小數(鍵盤彈起事件)事件
- 文字框文字輸入數量倒計效果
- 短視訊app原始碼,輸入邀請碼時點選「螢幕」周邊或者「返回鍵」彈框不會消失APP原始碼
- 短視訊直播原始碼,React children元件例項提示框原始碼React元件