asp.net關(guān)于onpropertychange和oninput事件實(shí)現(xiàn)代碼
更新時(shí)間:2009年11月26日 18:58:03 作者:
文本框,數(shù)據(jù)列表,當(dāng)在文本框中輸入條件時(shí)需要實(shí)時(shí)刷新數(shù)據(jù)列表,而且需要滿足多瀏覽器(IE6.0/7.0/8.0,FireFox,Opera,google chrome,Safair)其功能類似google的智能匹配,我是用asp.net實(shí)現(xiàn)的。
整體思路是這樣,當(dāng)文本框的值改變時(shí)觸發(fā)事件,對(duì)列表中原有的值進(jìn)行過(guò)濾。
根據(jù)這個(gè)思路,首先需要解決的無(wú)非是確定文本框的什么事件可以滿足要求,當(dāng)時(shí)第一個(gè)想到的是onkeydown或者onkeypress,在試的過(guò)程中發(fā)現(xiàn)再輸入中文時(shí),無(wú)法響應(yīng),因?yàn)檩斎敕綍?huì)將焦點(diǎn)給屏蔽了。在網(wǎng)上尋覓了一會(huì)發(fā)現(xiàn)onpropertychange事件為改變文本屬性時(shí)就會(huì)出發(fā),所以當(dāng)文本框輸入數(shù)據(jù)的時(shí)候其實(shí)是在改變文本框的value屬性。而且中文也可以滿足,本以為大功告成,最后才發(fā)現(xiàn)這個(gè)事件為IE的專屬事件,其他的瀏覽器并沒(méi)有該事件。而對(duì)應(yīng)的oninput則可以滿足需求。
具體的實(shí)現(xiàn)是,文本框,隱藏按鈕,當(dāng)在文本框輸入內(nèi)容時(shí),調(diào)用onpropertychange或oninput事件,在這個(gè)事件中找到隱藏的按鈕,然后出發(fā)他的click事件,這樣我們只需要在后臺(tái)隱藏按鈕的click事件中去過(guò)濾列表數(shù)據(jù)(當(dāng)然前面的出發(fā)隱藏按鈕的事件是用javascript來(lái)做的,需要注意的就是在前臺(tái)獲取服務(wù)端控件的ClienID)腳本代碼如下:
<script type="javascript/text" language="javascript">
function btnClick()
{
var btnID = "<%=this.btnSearch.ClientID%>";
var btnObject = document.getElementID(btnID);
if(btnObject)
{
btnObject.click();
}
}
</script>
根據(jù)這個(gè)思路,首先需要解決的無(wú)非是確定文本框的什么事件可以滿足要求,當(dāng)時(shí)第一個(gè)想到的是onkeydown或者onkeypress,在試的過(guò)程中發(fā)現(xiàn)再輸入中文時(shí),無(wú)法響應(yīng),因?yàn)檩斎敕綍?huì)將焦點(diǎn)給屏蔽了。在網(wǎng)上尋覓了一會(huì)發(fā)現(xiàn)onpropertychange事件為改變文本屬性時(shí)就會(huì)出發(fā),所以當(dāng)文本框輸入數(shù)據(jù)的時(shí)候其實(shí)是在改變文本框的value屬性。而且中文也可以滿足,本以為大功告成,最后才發(fā)現(xiàn)這個(gè)事件為IE的專屬事件,其他的瀏覽器并沒(méi)有該事件。而對(duì)應(yīng)的oninput則可以滿足需求。
具體的實(shí)現(xiàn)是,文本框,隱藏按鈕,當(dāng)在文本框輸入內(nèi)容時(shí),調(diào)用onpropertychange或oninput事件,在這個(gè)事件中找到隱藏的按鈕,然后出發(fā)他的click事件,這樣我們只需要在后臺(tái)隱藏按鈕的click事件中去過(guò)濾列表數(shù)據(jù)(當(dāng)然前面的出發(fā)隱藏按鈕的事件是用javascript來(lái)做的,需要注意的就是在前臺(tái)獲取服務(wù)端控件的ClienID)腳本代碼如下:
復(fù)制代碼 代碼如下:
<script type="javascript/text" language="javascript">
function btnClick()
{
var btnID = "<%=this.btnSearch.ClientID%>";
var btnObject = document.getElementID(btnID);
if(btnObject)
{
btnObject.click();
}
}
</script>
相關(guān)文章
ASP.NET 在下載文件時(shí)對(duì)其重命名的思路及實(shí)現(xiàn)方法
ASP.NET 在下載文件時(shí)對(duì)其重命名的思路及實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-06-06
淺談從ASP.NET Core2.2到3.0你可能會(huì)遇到這些問(wèn)題
這篇文章主要介紹了ASP.NET Core2.2到3.0可能會(huì)遇到的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Server.Transfer,Response.Redirect的區(qū)別
Server.Transfer,Response.Redirect的區(qū)別...2006-12-12
ASP.NET Core MVC/WebApi基礎(chǔ)系列1
這篇文章主要介紹了ASP.NET Core MVC/WebApi基礎(chǔ)系列,后續(xù)會(huì)穿插講EF Core和ASP.NET Core,雖說(shuō)是基礎(chǔ)系列但也是也有你不知道的。2019-04-04
Asp.net Core 如何設(shè)置黑白名單(路由限制)
本文主要介紹了Asp.net Core 如何設(shè)置黑白名單(路由限制),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
詳解ASP.NET Core 2.0 路由引擎之網(wǎng)址生成(譯)
這篇文章主要介紹了詳解ASP.NET Core 2.0 路由引擎之網(wǎng)址生成(譯),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
.Net通過(guò)TaskFactory.FromAsync簡(jiǎn)化APM
這篇文章介紹了.Net通過(guò)TaskFactory.FromAsync簡(jiǎn)化APM的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06

