JavaScript onblur與onfocus事件詳解
html頁(yè)面中,諸如按鈕、文本框等可視元素都具有擁有和失去焦點(diǎn)的事件,這些事件在響應(yīng)鼠標(biāo)或鍵盤(pán)動(dòng)作時(shí)都可激發(fā)預(yù)設(shè)的操作。本文以文本框獲得和失去焦點(diǎn)為例簡(jiǎn)單講解onfocus和onblur的應(yīng)用。
一. onfocus(獲得焦點(diǎn)事件)
當(dāng)一個(gè)文本框獲得焦點(diǎn)時(shí),它里面的文本就像“好123”網(wǎng)站上的百度搜索輸入框那樣全部被自動(dòng)選中,這樣的操作可以利用onfocus來(lái)實(shí)現(xiàn)。
以下的文本框,當(dāng)鼠標(biāo)指針移過(guò)去時(shí),里面的文字全部被選中:
請(qǐng)輸入網(wǎng)址
這是怎么做的呢?看以下代碼及解釋?zhuān)?/p>
<input type="text"name="url" value="http://www.gxblk.com" size="30"οnmοusemοve="this.focus();this.select();">
代碼里,input標(biāo)簽內(nèi)嵌入了onmousemove(鼠標(biāo)指針經(jīng)過(guò))事件的JS語(yǔ)句,其等號(hào)后面的this.focus()意為其自身獲得焦點(diǎn);獲得焦點(diǎn)的標(biāo)志是該文本框內(nèi)將出現(xiàn)輸入光標(biāo),但要讓其內(nèi)的文字全部被選中,我們還得用上this.select()語(yǔ)句,它的意思就是選中全部文本框里的文字。
二. onblur(失去焦點(diǎn)事件)
我們經(jīng)常會(huì)檢測(cè)文本框是否已經(jīng)被正確輸入,檢測(cè)工作通常在用戶點(diǎn)擊了提交按鈕之后進(jìn)行,事實(shí)上,利用控件失去焦點(diǎn)的時(shí)候,我們就可以實(shí)時(shí)進(jìn)行這個(gè)檢測(cè)工作,這樣的話,onblur事件就派上用場(chǎng)了。
以下例子有四個(gè)文本框,如果還沒(méi)有任何單擊它們當(dāng)中的任意一個(gè)的操作,那么什么事情也不會(huì)發(fā)生,但是,當(dāng)你單擊了其中的任何一個(gè)使其擁有了焦點(diǎn)(輸入光標(biāo)在里面),如果什么都沒(méi)有輸入并且單擊了別的地方令其失去焦點(diǎn),就會(huì)彈出一個(gè)警告,試試看
姓名
性別
年齡
住址
以下是代碼和解釋?zhuān)?/p>
表單代碼
<form name="blur_test">
<p>姓名 <input type="text" name="name"value="" size="30"οnblur="chkvalue(this)"><br>
性別 <inputtype="text" name="sex" value=""size="30" οnblur="chkvalue(this)"><br>
年齡 <inputtype="text" name="age" value=""size="30" οnblur="chkvalue(this)"><br>
住址 <inputtype="text" name="addr" value=""size="30" οnblur="chkvalue(this)"></p>
</form>
JS代碼
<scriptlanguage="javascript">
function chkvalue(txt) {
if(txt.value=="") alert("文本框里必須填寫(xiě)內(nèi)容!");
}
</script>
表單代碼里,每一個(gè)方框框的代碼都嵌入一個(gè)onblur JS語(yǔ)句,它們都調(diào)用后面的JS代碼中的自定義函數(shù)chkvalue(this),意思是,當(dāng)文本框失去焦點(diǎn)時(shí)就調(diào)用chkvalue()函數(shù);這chkvalue()函數(shù)檢測(cè)文本框是否為空,如果是就彈出警告窗口。該函數(shù)有一個(gè)參數(shù)(txt),對(duì)應(yīng)于前面文本框調(diào)用該函數(shù)的參數(shù)(this)即自身。
到此這篇關(guān)于JavaScript onblur與onfocus事件詳解的文章就介紹到這了,更多相關(guān)js onblur與onfocus事件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
BootStrap點(diǎn)擊下拉菜單項(xiàng)后顯示一個(gè)新的輸入框?qū)崿F(xiàn)代碼
這篇文章主要介紹了BootStrap點(diǎn)擊下拉菜單項(xiàng)后顯示一個(gè)新的輸入框?qū)崿F(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2016-05-05
分享8個(gè)JavaScript庫(kù)可更好地處理本地存儲(chǔ)
這篇文章主要介紹了分享8個(gè)JavaScript庫(kù)可更好地處理本地存儲(chǔ),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
在一個(gè)js文件里遠(yuǎn)程調(diào)用jquery.js會(huì)在ie8下的一個(gè)奇怪問(wèn)題
這樣的腳本你在ie8下調(diào)用,在ie8地址欄下按下回車(chē)后調(diào)用jquery的對(duì)像、方法什么的沒(méi)有問(wèn)題,但是刷新之后就有問(wèn)題。就是刷新之后無(wú)論怎樣你要在地址欄按一下回車(chē)。2010-11-11
uniapp與webview直接進(jìn)行傳值的代碼示例
在使用UniApp開(kāi)發(fā)應(yīng)用時(shí),經(jīng)常需要實(shí)現(xiàn)WebView與UniApp之間的數(shù)據(jù)交互,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-09-09
Bootstrap每天必學(xué)之標(biāo)簽頁(yè)(Tab)插件
Bootstrap每天必學(xué)之標(biāo)簽頁(yè)(Tab)插件,通過(guò)這個(gè)插件您可以把內(nèi)容放置在標(biāo)簽頁(yè)或者是膠囊式標(biāo)簽頁(yè)甚至是下拉菜單標(biāo)簽頁(yè)中,感興趣的小伙伴們可以參考一下2016-04-04
Javascript摸擬自由落體與上拋運(yùn)動(dòng)原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Javascript摸擬自由落體與上拋運(yùn)動(dòng),結(jié)合實(shí)例形式分析了Javascript摸擬自由落體與上拋運(yùn)動(dòng)相關(guān)原理、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-04-04

