最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

頁面版文本框智能提示JS代碼

 更新時間:2009年11月20日 17:59:39   作者:  
首先說下背景,該code用于一個多條件查詢界面,原本該查詢條件由一個下拉列表提供,但是由于下拉列表數(shù)據(jù)量過大,用戶使用不方便,便希望在頁面給出一個智能提示的功能,但搜索的數(shù)據(jù)來自下拉列表
于是這code便誕生了,如下:
復制代碼 代碼如下:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無標題頁</title>
<script type="text/javascript" language="javascript">
var currentIndex=-1;//保存提示框中選擇的索引
var sumSearchCount=0;//保存提示框中數(shù)據(jù)數(shù)量
var tempValue="";//保存當前輸入的要搜索的內(nèi)容
var objTxt="";//保存文本框對象
var top=0;//提示框的top
var left=0;//提示框的left
var width=0;//提示框的width
var values = new Array();//保存下拉列表的值
var texts = new Array();//保存下拉列表的顯示內(nèi)容
var tempDiv=new Array();//保存提示框中索引對應的values索引
//獲取下拉列表的值和顯示內(nèi)容
function getSelectValues(ddl){
ddlvalue = document.getElementById("DropDownList1");
for(var i=0;i<ddlvalue.length;i++){
values[i]=ddlvalue.options[i].value;
texts[i]=ddlvalue.options[i].text;
}
}
var oInterval = "";//保存自動計時對象
function fnStartInterval(txt_id){
getSelectValues("DropDownList1");
objTxt=txt_id;//獲取輸入文本框對象
top = getLength("offsetTop")+objTxt.offsetHeight;
left= getLength("offsetLeft");
width=objTxt.offsetWidth;
oInterval = window.setInterval("beginSearch()",2000);//啟用計時
}
//獲取對應屬性的長度
function getLength(attribute)
{
var offset = 0;
var txt_input = document.getElementById("txtSearch");
while (item)
{
offset += txt_input[attribute];
txt_input = txt_input.offsetParent;
}
return offset;
}
//停止計時
function fnStopInterval()
{
window.clearInterval(oInterval);
}
//自動完成提示
function beginSearch(){
if(objTxt.value.length>0 && tempValue!=objTxt.value)
{
sumSearchCount=0;
tempValue=objTxt.value;
var div_show = document.getElementById("divMsg");
div_show.style.top=top+"px";
div_show.style.display="block";
div_show.style.left=left+"px";
div_show.style.width=width+"px";
div_show.innerHTML="";
var leng = texts.length;
var txt_value = objTxt.value;
var row="";
for(var i=0;i<leng;i++){
if(texts[i].indexOf(txt_value)!=-1){
row = row + "<div style=\"font-size:14px; display:block; width:100%\" id='divsearch_"+i+"' onmouseover=\"this.style.backgroundColor='#3366CC';currentIndex="+i+";\" onmouseout=\"this.style.backgroundColor='';currentIndex=-1;\" onclick=\"span_click(this)\" >"+texts[i]+"</div>";
tempDiv[sumSearchCount]=i;
sumSearchCount++;
}
}
div_show.innerHTML=row;
}
else if(objTxt.value.length==0 || objTxt.value == null)
{
var div_msg = document.getElementById("divMsg");
div_msg.style.display="none";
div_msg.innerHTML="";
}
}
//提示內(nèi)容單擊保存到文本框中
function span_click(sp)
{
clear();
objTxt.value=sp.innerHTML;
document.getElementById("DropDownList1").options[sp.id.substring(sp.id.indexOf('_')+1,sp.id.length)].selected="selected";
}
//停止查詢,關閉提示
function closeSearch()
{
var tbl = document.activeElement.parentElement;
if(tbl && tbl.id!="divMsg")//防止使用上下鍵后丟失提示內(nèi)容
{
clear();
document.getElementById("divMsg").innerHTML="";
}
else if(currentIndex==-1)
{
clear();
document.getElementById("divMsg").innerHTML="";
}
}
//清空提示
function clear()
{
fnStopInterval();
currentIndex=-1;
tempValue="";
document.getElementById("divMsg").style.display="none";
}
//使用鍵盤上下方向鍵和enter鍵
function changeSelect()
{
var divContent = document.getElementById("divMsg");
if(divContent && divContent.style.display=="block")
{
if (event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 13)
{
if(currentIndex!=-1) document.getElementById("divsearch_"+tempDiv[currentIndex]).style.backgroundColor="";
if (event.keyCode == 38 && currentIndex > 0)
{
currentIndex--;
document.getElementById("divsearch_"+tempDiv[currentIndex]).style.backgroundColor="#3366CC";
}
else if (event.keyCode == 40 && currentIndex < sumSearchCount-1)
{
currentIndex++;
document.getElementById("divsearch_"+tempDiv[currentIndex]).style.backgroundColor="#3366CC";
}
else if (event.keyCode == 13)
{
if(currentIndex > -1)
{
var divpart = document.getElementById("divsearch_"+tempDiv[currentIndex]);
objTxt.value=divpart.innerHTML;
document.getElementById("DropDownList1").options[tempDiv[currentIndex]].selected="selected";
clear();
}
}
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="txtSearch" autocomplete="off" onkeydown="changeSelect()" onfocus="fnStartInterval(this)" onblur="closeSearch()" runat="server" />
<asp:DropDownList ID="DropDownList1" runat="server" DataTextField="slr_realname" DataValueField="systemloginrecord_id" DataSourceID="ObjectDataSource1" Width="130px">
</asp:DropDownList><asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetRecordDS"
TypeName="TestDAL"></asp:ObjectDataSource>
</div>
<div style="display:none; z-index:2; text-align:left; position:absolute; border:solid 1px;" id="divMsg">
</div>
</form>
</body>
</html>

<input type="text" id="txtSearch" autocomplete="off"。。。這里加入了autocomplete屬性,屏蔽了文本框輸入記錄提示功能,雖然這個功能很好,但是在這里卻成了絆腳石。呵呵
以前沒有寫博客的習慣,好多不經(jīng)常使用的東西用過就忘了。以后是要整理整理了。

相關文章

  • 分享JS代碼實現(xiàn)鼠標放在輸入框上輸入框和圖片同時更換樣式

    分享JS代碼實現(xiàn)鼠標放在輸入框上輸入框和圖片同時更換樣式

    在一些網(wǎng)站我們會見到,當鼠標放在輸入框上輸入框和圖片同時更換樣式,那么基于js代碼是如何實現(xiàn)的呢?下面小編給大家解答下
    2016-09-09
  • 關于layui 彈出層一閃而過就消失的解決方法

    關于layui 彈出層一閃而過就消失的解決方法

    今天小編就為大家分享一篇關于layui 彈出層一閃而過就消失的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 微信小程序點擊按鈕動態(tài)切換input的disabled禁用/啟用狀態(tài)功能

    微信小程序點擊按鈕動態(tài)切換input的disabled禁用/啟用狀態(tài)功能

    這篇文章主要介紹了微信小程序點擊按鈕動態(tài)切換input的disabled禁用/啟用狀態(tài)功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • JavaScript函數(shù)的使用教程

    JavaScript函數(shù)的使用教程

    這篇文章主要介紹了JavaScript函數(shù)的使用教程,JavaScript函數(shù)是被設計為執(zhí)行特定任務的代碼塊。JavaScript函數(shù)會在某代碼調用它時被執(zhí)行。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 一個可以得到元素真實的背景顏色的javascript腳本

    一個可以得到元素真實的背景顏色的javascript腳本

    一個可以得到元素真實的背景顏色的javascript腳本...
    2007-07-07
  • js+css實現(xiàn)打字效果

    js+css實現(xiàn)打字效果

    這篇文章主要為大家詳細介紹了js+css打字效果的實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • bootstrap css樣式之表單

    bootstrap css樣式之表單

    這篇文章主要為大家詳細介紹了bootstrap css樣式之表單的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • vant uploader實現(xiàn)上傳圖片拖拽功能(設為封面)

    vant uploader實現(xiàn)上傳圖片拖拽功能(設為封面)

    這篇文章主要介紹了vant uploader實現(xiàn)上傳圖片拖拽功能(設為封面),這個功能在日常生活中經(jīng)常會用到,操作非常方便,今天通過實例代碼介紹實現(xiàn)過程,需要的朋友可以參考下
    2021-10-10
  • Ionic2調用本地SQlite實例

    Ionic2調用本地SQlite實例

    這篇文章主要介紹了Ionic2調用本地SQlite實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • JS操作JSON要領詳細總結

    JS操作JSON要領詳細總結

    JSON是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON數(shù)據(jù)不須要任何特殊的 API 或工具包,下面與大家分享下JSON操作的相關知識
    2013-08-08

最新評論

霸州市| 肥东县| 古丈县| 朝阳县| 安多县| 阜康市| 滨海县| 昔阳县| 龙州县| 延吉市| 凌云县| 潞城市| 清水县| 甘肃省| 河东区| 乌兰浩特市| 西青区| 尖扎县| 呼伦贝尔市| 咸丰县| 柞水县| 皮山县| 嘉荫县| 阳西县| 石泉县| 平罗县| 寻甸| 玉龙| 庐江县| 固原市| 兴山县| 淳化县| 淮滨县| 芦溪县| 邢台市| 定西市| 荣成市| 北川| 娱乐| 吐鲁番市| 安泽县|