JavaScript onblur與onfocus事件詳解
html頁面中,諸如按鈕、文本框等可視元素都具有擁有和失去焦點(diǎn)的事件,這些事件在響應(yīng)鼠標(biāo)或鍵盤動(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來實(shí)現(xiàn)。
以下的文本框,當(dāng)鼠標(biāo)指針移過去時(shí),里面的文字全部被選中:
請(qǐng)輸入網(wǎng)址
這是怎么做的呢?看以下代碼及解釋:
<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)過)事件的JS語句,其等號(hào)后面的this.focus()意為其自身獲得焦點(diǎn);獲得焦點(diǎn)的標(biāo)志是該文本框內(nèi)將出現(xiàn)輸入光標(biāo),但要讓其內(nèi)的文字全部被選中,我們還得用上this.select()語句,它的意思就是選中全部文本框里的文字。
二. 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è)文本框,如果還沒有任何單擊它們當(dāng)中的任意一個(gè)的操作,那么什么事情也不會(huì)發(fā)生,但是,當(dāng)你單擊了其中的任何一個(gè)使其擁有了焦點(diǎn)(輸入光標(biāo)在里面),如果什么都沒有輸入并且單擊了別的地方令其失去焦點(diǎn),就會(huì)彈出一個(gè)警告,試試看
姓名
性別
年齡
住址
以下是代碼和解釋:
表單代碼
<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("文本框里必須填寫內(nèi)容!");
}
</script>
表單代碼里,每一個(gè)方框框的代碼都嵌入一個(gè)onblur JS語句,它們都調(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庫可更好地處理本地存儲(chǔ)
這篇文章主要介紹了分享8個(gè)JavaScript庫可更好地處理本地存儲(chǔ),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
在一個(gè)js文件里遠(yuǎn)程調(diào)用jquery.js會(huì)在ie8下的一個(gè)奇怪問題
這樣的腳本你在ie8下調(diào)用,在ie8地址欄下按下回車后調(diào)用jquery的對(duì)像、方法什么的沒有問題,但是刷新之后就有問題。就是刷新之后無論怎樣你要在地址欄按一下回車。2010-11-11
uniapp與webview直接進(jìn)行傳值的代碼示例
在使用UniApp開發(fā)應(yīng)用時(shí),經(jīng)常需要實(shí)現(xiàn)WebView與UniApp之間的數(shù)據(jù)交互,文中通過代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-09-09
Bootstrap每天必學(xué)之標(biāo)簽頁(Tab)插件
Bootstrap每天必學(xué)之標(biāo)簽頁(Tab)插件,通過這個(gè)插件您可以把內(nèi)容放置在標(biāo)簽頁或者是膠囊式標(biāo)簽頁甚至是下拉菜單標(biāo)簽頁中,感興趣的小伙伴們可以參考一下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

