簡單JS自動提示文本框代碼
更新時(shí)間:2012年01月16日 23:30:18 作者:
為了滿足用戶的方便,提供良好的自動提示功能就成為定級公司努力方向。廢話少說,看例子
本例以顏色為例,為用戶提供自動提示,展示效果和運(yùn)行結(jié)果如圖:
<body>
<form method="post" name="myForm1">
Color: <input type="text" name="colors" id="colors" onkeyup="findColors();" />
</form>
<div id="popup">
<ul id="colors_ul"></ul>
</div>
</body>
2、頁面和表單CSS:
<style>
<!--
body{
font-family:Arial, Helvetica, sans-serif;
font-size:12px; padding:0px; margin:5px; form{padding:0px; margin:0px;}
input{ font-family:Arial, Helvetica, sans-serif;
font-size:12px; border:1px solid #000000;
width:200px; padding:1px; margin:0px; #popup{ position:absolute; width:202px;
color:#004a7e; font-size:12px;
font-family:Arial, Helvetica, sans-serif;
left:41px; top:25px; #popup.show{ border:1px solid #004a7e; #popup.hide{ border:none;
} ul{
list-style:none;
margin:0px; padding:0px; li.mouseOver{
background-color:#004a7e;
color:#FFFFFF; li.mouseOut{
background-color:#FFFFFF;
color:#004a7e; -->
</style>
3、實(shí)現(xiàn)JS匹配用戶輸入:
<script language="javascript">
var oInputField; //考慮到很多函數(shù)中都要使用
var oPopDiv; //因此采用全局變量的形式
var oColorsUl;
var aColors = ["red","green","blue","magenta","yellow",……"ivory","darkmagenta","cornfloewrblue"];
aColors.sort(); //按字母排序,使顯示結(jié)果更友好
function initVars(){ oInputField = document.forms["myForm1"].colors;
oPopDiv = document.getElementByIdx_x("popup");
oColorsUl = document.getElementByIdx_x("colors_ul"); function clearColors(){ for(var i=oColorsUl.childNodes.length-1;i>=0;i--)
oColorsUl.removeChild(oColorsUl.childNodes[i]);
oPopDiv.className = "hide"; function setColors(the_colors){ clearColors(); //每輸入一個字母就先清除原先的提示,再繼續(xù)
oPopDiv.className = "show";
var oLi;
for(var i=0;i<the_colors.length;i++){ oLi = document.createElement_x("li");
oColorsUl.appendChild(oLi);
oLi.appendChild(document.createTextNode(the_colors[i]));
oLi. = function(){
this.className = "mouseOver"; //鼠標(biāo)經(jīng)過時(shí)高亮 oLi. = function(){
this.className = "mouseOut"; //離開時(shí)恢復(fù)原樣 oLi.onclick = function(){ oInputField.value = this.firstChild.nodeValue;
clearColors(); //同時(shí)清除提示框 } function findColors(){
initVars(); //初始化變量
if(oInputField.value.length > 0){
var aResult = new Array(); //用于存放匹配結(jié)果
for(var i=0;i<aColors.length;i++) //從顏色表中找匹配的顏色 if(aColors[i].indexOf(oInputField.value) == 0)
aResult.push(aColors[i]); //壓入結(jié)果
if(aResult.length>0) //如果有匹配的顏色則顯示出來
setColors(aResult);
else //否則清除,用戶多輸入一個字母
clearColors(); //就有可能從有匹配到無,到無的時(shí)候需要清除 else
clearColors(); //無輸入時(shí)清除提示框(例如用戶按del鍵)
</script>
文本框輸入提示/自動完成的Js代碼
文本框輸入自動匹配或提示的功能,輸入內(nèi)容,自動匹配對應(yīng)數(shù)據(jù),可用上下鍵控制選項(xiàng)、按回車鍵選擇,也可以直接用鼠標(biāo)選擇。代碼:建立實(shí)例,第一個參數(shù)是實(shí)例對象的名稱,第二個是最多顯示的數(shù)量。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
復(fù)制代碼 代碼如下:
<body>
<form method="post" name="myForm1">
Color: <input type="text" name="colors" id="colors" onkeyup="findColors();" />
</form>
<div id="popup">
<ul id="colors_ul"></ul>
</div>
</body>
2、頁面和表單CSS:
復(fù)制代碼 代碼如下:
<style>
<!--
body{
font-family:Arial, Helvetica, sans-serif;
font-size:12px; padding:0px; margin:5px; form{padding:0px; margin:0px;}
input{ font-family:Arial, Helvetica, sans-serif;
font-size:12px; border:1px solid #000000;
width:200px; padding:1px; margin:0px; #popup{ position:absolute; width:202px;
color:#004a7e; font-size:12px;
font-family:Arial, Helvetica, sans-serif;
left:41px; top:25px; #popup.show{ border:1px solid #004a7e; #popup.hide{ border:none;
} ul{
list-style:none;
margin:0px; padding:0px; li.mouseOver{
background-color:#004a7e;
color:#FFFFFF; li.mouseOut{
background-color:#FFFFFF;
color:#004a7e; -->
</style>
3、實(shí)現(xiàn)JS匹配用戶輸入:
復(fù)制代碼 代碼如下:
<script language="javascript">
var oInputField; //考慮到很多函數(shù)中都要使用
var oPopDiv; //因此采用全局變量的形式
var oColorsUl;
var aColors = ["red","green","blue","magenta","yellow",……"ivory","darkmagenta","cornfloewrblue"];
aColors.sort(); //按字母排序,使顯示結(jié)果更友好
function initVars(){ oInputField = document.forms["myForm1"].colors;
oPopDiv = document.getElementByIdx_x("popup");
oColorsUl = document.getElementByIdx_x("colors_ul"); function clearColors(){ for(var i=oColorsUl.childNodes.length-1;i>=0;i--)
oColorsUl.removeChild(oColorsUl.childNodes[i]);
oPopDiv.className = "hide"; function setColors(the_colors){ clearColors(); //每輸入一個字母就先清除原先的提示,再繼續(xù)
oPopDiv.className = "show";
var oLi;
for(var i=0;i<the_colors.length;i++){ oLi = document.createElement_x("li");
oColorsUl.appendChild(oLi);
oLi.appendChild(document.createTextNode(the_colors[i]));
oLi. = function(){
this.className = "mouseOver"; //鼠標(biāo)經(jīng)過時(shí)高亮 oLi. = function(){
this.className = "mouseOut"; //離開時(shí)恢復(fù)原樣 oLi.onclick = function(){ oInputField.value = this.firstChild.nodeValue;
clearColors(); //同時(shí)清除提示框 } function findColors(){
initVars(); //初始化變量
if(oInputField.value.length > 0){
var aResult = new Array(); //用于存放匹配結(jié)果
for(var i=0;i<aColors.length;i++) //從顏色表中找匹配的顏色 if(aColors[i].indexOf(oInputField.value) == 0)
aResult.push(aColors[i]); //壓入結(jié)果
if(aResult.length>0) //如果有匹配的顏色則顯示出來
setColors(aResult);
else //否則清除,用戶多輸入一個字母
clearColors(); //就有可能從有匹配到無,到無的時(shí)候需要清除 else
clearColors(); //無輸入時(shí)清除提示框(例如用戶按del鍵)
</script>
文本框輸入提示/自動完成的Js代碼
文本框輸入自動匹配或提示的功能,輸入內(nèi)容,自動匹配對應(yīng)數(shù)據(jù),可用上下鍵控制選項(xiàng)、按回車鍵選擇,也可以直接用鼠標(biāo)選擇。代碼:建立實(shí)例,第一個參數(shù)是實(shí)例對象的名稱,第二個是最多顯示的數(shù)量。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
相關(guān)文章
將兩個div左右并列顯示并實(shí)現(xiàn)點(diǎn)擊標(biāo)題切換內(nèi)容
將兩個div左右并列顯示并實(shí)現(xiàn)點(diǎn)擊標(biāo)題切換內(nèi)容的效果,接下來為大家詳細(xì)介紹下js中時(shí)如何實(shí)現(xiàn)的,感興趣的朋友不要錯過2013-10-10在JavaScript中使用Promise.allSettled()的方法
Promise.allSettled()是一個游戲規(guī)則改變者,讓您等待所有承諾得到解決(解決或拒絕),然后根據(jù)結(jié)果采取行動,這篇文章主要介紹了如何在JavaScript中使用Promise.allSettled(),需要的朋友可以參考下2023-07-07Javascript中3種實(shí)現(xiàn)繼承的方法和代碼實(shí)例
這篇文章主要介紹了Javascript中3種實(shí)現(xiàn)繼承的方法和代碼實(shí)例,這3種方法分別為對象冒充、原型繼承、上二者的混合,需要的朋友可以參考下2014-08-08javascript實(shí)現(xiàn)的圖片預(yù)覽和上傳功能示例【兼容IE 9】
這篇文章主要介紹了javascript實(shí)現(xiàn)的圖片預(yù)覽和上傳功能,結(jié)合實(shí)例形式分析了javascrpt圖片預(yù)覽和上傳功能相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05