Js中的onblur和onfocus事件應(yīng)用介紹
更新時(shí)間:2013年08月27日 16:03:16 作者:
html頁(yè)面中,諸如按鈕、文本框等可視元素都具有擁有和失去焦點(diǎn)的事件,本文以文本框獲得和失去焦點(diǎn)為例簡(jiǎn)單講解onfocus和onblur的應(yīng)用
html頁(yè)面中,諸如按鈕、文本框等可視元素都具有擁有和失去焦點(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來(lái)實(shí)現(xiàn)。
以下的文本框,當(dāng)鼠標(biāo)指針移過(guò)去時(shí),里面的文字全部被選中:
請(qǐng)輸入網(wǎng)址
這是怎么做的呢?看以下代碼及解釋:
<input type="text"name="url" value="http://www.gxblk.com" size="30"onmousemove="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è)警告,試試看
姓名
性別
年齡
住址
以下是代碼和解釋:
表單代碼
<form name="blur_test">
<p>姓名 <input type="text" name="name"value="" size="30"onblur="chkvalue(this)"><br>
性別 <inputtype="text" name="sex" value=""size="30" onblur="chkvalue(this)"><br>
年齡 <inputtype="text" name="age" value=""size="30" onblur="chkvalue(this)"><br>
住址 <inputtype="text" name="addr" value=""size="30" onblur="chkvalue(this)"></p>
</form>
JS代碼
<scriptlanguage="javascript">
function chkvalue(txt) {
if(txt.value=="") alert("文本框里必須填寫內(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)即自身。
一. 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)址
這是怎么做的呢?看以下代碼及解釋:
<input type="text"name="url" value="http://www.gxblk.com" size="30"onmousemove="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è)警告,試試看
姓名
性別
年齡
住址
以下是代碼和解釋:
表單代碼
復(fù)制代碼 代碼如下:
<form name="blur_test">
<p>姓名 <input type="text" name="name"value="" size="30"onblur="chkvalue(this)"><br>
性別 <inputtype="text" name="sex" value=""size="30" onblur="chkvalue(this)"><br>
年齡 <inputtype="text" name="age" value=""size="30" onblur="chkvalue(this)"><br>
住址 <inputtype="text" name="addr" value=""size="30" onblur="chkvalue(this)"></p>
</form>
JS代碼
復(fù)制代碼 代碼如下:
<scriptlanguage="javascript">
function chkvalue(txt) {
if(txt.value=="") alert("文本框里必須填寫內(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)即自身。
您可能感興趣的文章:
- AngularJS ng-blur 指令詳解及簡(jiǎn)單實(shí)例
- 老生常談onBlur事件與onfocus事件(js)
- jsp+ajax實(shí)現(xiàn)的局部刷新較驗(yàn)驗(yàn)證碼(onblur事件觸發(fā)較驗(yàn))
- javascript委托(Delegate)blur和focus用法實(shí)例分析
- AngularJS Controller作用域
- JS 實(shí)現(xiàn)計(jì)算器詳解及實(shí)例代碼(一)
- JSP頁(yè)面跳轉(zhuǎn)方法小結(jié)
- 詳解js中==與===的區(qū)別
- js時(shí)間控件只顯示年月
- java后端把數(shù)據(jù)轉(zhuǎn)換為樹(shù),map遞歸生成json樹(shù),返回給前端(后臺(tái)轉(zhuǎn)換)
- 完美解決node.js中使用https請(qǐng)求報(bào)CERT_UNTRUSTED的問(wèn)題
- JS實(shí)現(xiàn)iframe自適應(yīng)高度的方法示例
- Javascript blur與click沖突解決辦法
- jsp頁(yè)面顯示數(shù)據(jù)庫(kù)的數(shù)據(jù)信息表
相關(guān)文章
javascript 基礎(chǔ)篇4 window對(duì)象,DOM
window這個(gè)對(duì)象我們之前也稍微接觸過(guò)了,其實(shí)就是對(duì)窗體進(jìn)行操作,利用這個(gè)對(duì)象我們可以實(shí)現(xiàn)很多的操作,比如窗口移動(dòng)啊,設(shè)置窗口大小啊等等2012-03-03JavaScript中的操作符類型轉(zhuǎn)換示例總結(jié)
最近發(fā)現(xiàn)在前端的面試題目中經(jīng)常出現(xiàn)操作符類型轉(zhuǎn)換的題目,于是這里來(lái)進(jìn)行一個(gè)JavaScript中的操作符類型轉(zhuǎn)換示例總結(jié),需要的朋友可以參考下2016-05-05Javascript 學(xué)習(xí)筆記之 對(duì)象篇(二) : 原型對(duì)象
Javascript 并沒(méi)有類繼承模型,而是使用原型對(duì)象 prototype 進(jìn)行原型式繼承。盡管人們經(jīng)常將此看做是 Javascript 的一個(gè)缺點(diǎn),然而事實(shí)上,原型式繼承比傳統(tǒng)的類繼承模型要更加強(qiáng)大。舉個(gè)例子,在原型式繼承頂端構(gòu)建一個(gè)類模型很簡(jiǎn)單,然而反過(guò)來(lái)則是個(gè)困難得多的任務(wù)。2014-06-06JavaScript學(xué)習(xí)筆記之Cookie對(duì)象
本文主要簡(jiǎn)單介紹了javascript中cookie對(duì)象的概念,以及cookie的讀取,寫入,刪除操作的方法,并附上示例,非常不錯(cuò),這里推薦給小伙伴們。2015-01-01JavaScript中構(gòu)造函數(shù)與原型鏈之間的關(guān)系詳解
在本篇文章里小編給大家分享了關(guān)于JavaScript中構(gòu)造函數(shù)與原型鏈之間的關(guān)系相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。2019-02-02JavaScript indexOf方法入門實(shí)例(計(jì)算指定字符在字符串中首次出現(xiàn)的位置)
這篇文章主要介紹了JavaScript indexOf方法入門實(shí)例,indexOf方法用于計(jì)算指定字符在字符串中首次出現(xiàn)的位置,需要的朋友可以參考下2014-10-10