日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

盤點JavaScript focus/blur(聚焦)實際應用

來源: 責編: 時間:2024-06-21 17:22:10 217觀看
導讀一、前言當用戶點擊某個元素或使用鍵盤上的 Tab 鍵選中時,該元素將會獲得聚焦(focus)。當網(wǎng)頁加載時,HTML-特性(attribute)。autofocus也可以讓一個焦點落在元素上,不僅如此,還有其它途徑可以獲得焦點。二、focus/blur 事件當

一、前言

ixQ28資訊網(wǎng)——每日最新資訊28at.com

當用戶點擊某個元素或使用鍵盤上的 Tab 鍵選中時,該元素將會獲得聚焦(focus)。當網(wǎng)頁加載時,HTML-特性(attribute)。ixQ28資訊網(wǎng)——每日最新資訊28at.com

autofocus也可以讓一個焦點落在元素上,不僅如此,還有其它途徑可以獲得焦點。ixQ28資訊網(wǎng)——每日最新資訊28at.com

二、focus/blur 事件

當元素聚焦時,會觸發(fā) focus事件,當元素失去焦點時,會觸發(fā) blur事件。讓使用它們來校驗一個 input字段。ixQ28資訊網(wǎng)——每日最新資訊28at.com

1. 案例分析

blur事件處理程序檢查這個字段是否輸入了電子郵箱,如果沒有輸入,則顯示一個 error。ixQ28資訊網(wǎng)——每日最新資訊28at.com

focus事件處理程序隱藏 error 信息(在blur事件處理程序上會被再檢查一遍)。ixQ28資訊網(wǎng)——每日最新資訊28at.com

2. 代碼

<style>  .invalid { border-color: red; }  #error { color: red }</style>Your email please: <input type="email" id="input"><div id="error"></div><script>input.onblur = function() {  if (!input.value.includes('@')) { // not email    input.classList.add('invalid');    error.innerHTML = 'Please enter a correct email.'  }};input.onfocus = function() {  if (this.classList.contains('invalid')) {    // 移除 "error" 指示,因為用戶想要重新輸入一些內容    this.classList.remove('invalid');    error.innerHTML = "";  }};</script>

ixQ28資訊網(wǎng)——每日最新資訊28at.com

注:ixQ28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)代 HTML 允許使用 input特性(attribute),進行許多驗證:required,pattern等。ixQ28資訊網(wǎng)——每日最新資訊28at.com

有時它們正是所需要的。當需要更大的靈活性時,可以使用 JavaScript。如果數(shù)據(jù)是正確的,可以把它自動發(fā)送到服務器。ixQ28資訊網(wǎng)——每日最新資訊28at.com

三、focus/blur 方法

elem.focus()和 elem.blur()方法可以設置和移除元素上的焦點。ixQ28資訊網(wǎng)——每日最新資訊28at.com

例:ixQ28資訊網(wǎng)——每日最新資訊28at.com

如果輸入值無效,可以讓焦點無法離開這個 input字段:ixQ28資訊網(wǎng)——每日最新資訊28at.com

<body style="background-color: aqua;">Your email please:   <input type="email" id="input">    <input type="text" style="width:220px" placeholder="make email invalid and try to focus here">    <script>        input.onblur = function() {            if (!this.value.includes('@')) { // not email                // 顯示 error                this.classList.add("error");                // ...將焦點放回來                input.focus();            } else {                this.classList.remove("error");            }        };</script></body>

ixQ28資訊網(wǎng)——每日最新資訊28at.com

注:ixQ28資訊網(wǎng)——每日最新資訊28at.com

如果在 input中輸入一些內容,然后嘗試使用 Tab 鍵或點擊遠離 <input>的位置,那么 onblur事件處理程序會把焦點重新設置到這個 input字段上。ixQ28資訊網(wǎng)——每日最新資訊28at.com

四、focus/blur 委托

focus和blur事件不會向上冒泡。

例如,不能把 onfocus放在 <form>上來對其進行高亮,像這樣:ixQ28資訊網(wǎng)——每日最新資訊28at.com

<!-- on focusing in the form -- add the class --><form onfocus="this.className='focused'">  <input type="text" name="name" value="Name">  <input type="text" name="surname" value="Surname"></form><style>   .focused {         outline: 1px solid red;   } </style>

當用戶聚焦于 <input>時,focus事件只會在該 <input>上觸發(fā)。它不會向上冒泡。所以 form.onfocus永遠不會觸發(fā)。ixQ28資訊網(wǎng)——每日最新資訊28at.com

form.onfocus永遠不會觸發(fā),(兩個解決方案)。ixQ28資訊網(wǎng)——每日最新資訊28at.com

1. 方案一

有一個遺留下來的有趣的特性(feature):focus/blur不會向上冒泡,但會在捕獲階段向下傳播。ixQ28資訊網(wǎng)——每日最新資訊28at.com

<form id="form">  <input type="text" name="name" value="Name">  <input type="text" name="surname" value="Surname"></form><style>   .focused {    outline: 1px solid red;   } </style><script>  // 將處理程序置于捕獲階段(最后一個參數(shù)為 true)  form.addEventListener("focus", () => form.classList.add('focused'), true);  form.addEventListener("blur", () => form.classList.remove('focused'), true);</script>

2. 方案二

可以使用 focusin和 focusout事件 —— 與 focus/blur事件完全一樣,只是它們會冒泡。ixQ28資訊網(wǎng)——每日最新資訊28at.com

注意:必須使用 elem.addEventListener來分配它們,而不是 on<event>。ixQ28資訊網(wǎng)——每日最新資訊28at.com

所以,這是另一個可行的變體:ixQ28資訊網(wǎng)——每日最新資訊28at.com

<form id="form">  <input type="text" name="name" value="Name">  <input type="text" name="surname" value="Surname"></form><style>   .focused {     outline: 1px solid red;   } </style><script>  form.addEventListener("focusin", () => form.classList.add('focused'));  form.addEventListener("focusout", () => form.classList.remove('focused'));</script>

一樣的結果:ixQ28資訊網(wǎng)——每日最新資訊28at.com

ixQ28資訊網(wǎng)——每日最新資訊28at.com

五、總結

本文基于JavaScript基礎,介紹了focus/blur(聚焦)實際應用。通過事件以及對方法的講解。在元素獲得/失去焦點時會觸發(fā) focus和 blur事件,通過 document.activeElement來獲取當前所聚焦的元素。focus/blur 委托時遇到的問題,提供了兩個有效的解決方案。ixQ28資訊網(wǎng)——每日最新資訊28at.com

歡迎大家積極嘗試,有時候看到別人實現(xiàn)起來很簡單,但是到自己動手實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。ixQ28資訊網(wǎng)——每日最新資訊28at.com

通過代碼的演示,運行效果圖的展示,能夠讓讀者更直觀的理解,更好的學習。ixQ28資訊網(wǎng)——每日最新資訊28at.com

代碼很簡單,希望能夠幫助你更好的學習。ixQ28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-95545-0.html盤點JavaScript focus/blur(聚焦)實際應用

聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 關于 Serilog.NET 中的日志使用技巧

下一篇: 18 個基本 JavaScript 方法代碼片段

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
免费观看在线综合| 午夜精品久久久久久99热| 亚洲国产综合在线看不卡| 在线看国产日韩| 91久久国产综合久久蜜月精品 | 精品福利免费观看| 亚洲激情影视| 一本色道久久88精品综合| 亚洲女人av| 久久影视精品| 国产精品大片wwwwww| 国模吧视频一区| 日韩一级片网址| 欧美一区二区三区在线观看 | 欧美激情精品久久久久久久变态| 欧美午夜久久久| 樱花yy私人影院亚洲| 夜夜嗨av一区二区三区中文字幕| 欧美一区二区日韩| 欧美人与禽性xxxxx杂性| 国产欧美精品xxxx另类| 91久久线看在观草草青青| 亚洲欧美99| 欧美精品99| 国产亚洲人成a一在线v站 | 亚洲丶国产丶欧美一区二区三区| 亚洲午夜久久久久久久久电影院 | 99在线热播精品免费99热| 欧美一区二区三区喷汁尤物| 欧美成人午夜视频| 国产欧美欧洲在线观看| 亚洲欧洲一区二区三区久久| 亚洲欧美日韩国产综合精品二区| 免费精品视频| 国产婷婷色一区二区三区四区| 亚洲区一区二| 久久久久久一区| 国产精品伦子伦免费视频| 亚洲区在线播放| 久久久亚洲国产天美传媒修理工| 国产精品h在线观看| 亚洲国产精品悠悠久久琪琪| 久久福利电影| 国产精品日韩欧美| 日韩视频二区| 免费成人黄色| 国产主播在线一区| 午夜电影亚洲| 欧美午夜精品理论片a级按摩 | 国产欧美一区二区三区沐欲| 一本一本久久a久久精品综合妖精| 美女视频一区免费观看| 国产亚洲综合在线| 亚洲欧美国产va在线影院| 欧美精品日韩三级| 91久久精品美女高潮| 久久人人97超碰国产公开结果 | 免费观看在线综合| 黑丝一区二区| 欧美一区二视频在线免费观看| 国产精品久久999| 99视频在线观看一区三区| 欧美成人综合一区| 在线观看亚洲a| 久久久久久久网站| 国产真实乱偷精品视频免| 午夜天堂精品久久久久 | 激情亚洲一区二区三区四区| 久久精品欧美日韩| 国产亚洲一区在线| 久久精品国产69国产精品亚洲| 国产精品久久久999| 一区二区三区产品免费精品久久75 | 国产精品一区二区男女羞羞无遮挡 | 宅男噜噜噜66一区二区66| 欧美精品久久99久久在免费线| 亚洲国内高清视频| 欧美 日韩 国产 一区| 亚洲大片在线观看| 麻豆成人综合网| 亚洲第一综合天堂另类专| 免费av成人在线| 亚洲国产欧美日韩| 欧美高清视频免费观看| 亚洲精品日韩在线观看| 欧美日本一区| 一本大道久久精品懂色aⅴ| 欧美日韩精品免费 | 久久青青草原一区二区| 尤妮丝一区二区裸体视频| 噜噜噜噜噜久久久久久91| 亚洲高清在线| 欧美激情亚洲另类| 一区二区日韩欧美| 国产精品久久久久9999吃药| 亚洲欧美日韩精品久久亚洲区| 国产欧美精品一区aⅴ影院| 久久成人资源| 在线观看亚洲专区| 欧美精品日韩| 亚洲欧美日韩人成在线播放| 国产一区二区三区高清| 老鸭窝毛片一区二区三区 | 亚洲午夜激情免费视频| 国产免费成人| 久久一区二区三区四区| 亚洲欧洲一二三| 欧美性做爰猛烈叫床潮| 亚洲欧美在线另类| 韩国在线视频一区| 欧美精品久久久久久久免费观看| 夜夜精品视频| 国产欧美日韩高清| 免费观看成人www动漫视频| 99精品视频网| 国产精品素人视频| 久久影院午夜片一区| 亚洲毛片在线看| 国产精品嫩草影院av蜜臀| 久久久精彩视频| 日韩视频精品| 国产亚洲精品久久飘花| 欧美成年人网站| 亚洲一级黄色片| 极品日韩av| 欧美色图天堂网| 久久久免费观看视频| aaa亚洲精品一二三区| 国产亚洲欧美日韩精品| 欧美精品亚洲二区| 欧美一区二区三区婷婷月色| 亚洲激情电影在线| 国产精品视频免费| 你懂的视频欧美| 亚洲欧美影音先锋| 亚洲人成在线观看网站高清| 国产精品视频男人的天堂 | 国产一区美女| 欧美三级在线视频| 久久久噜噜噜久久中文字幕色伊伊| 日韩视频免费观看| 国产主播一区二区三区四区| 欧美日韩亚洲一区三区| 久久夜精品va视频免费观看| 亚洲一区二区三区四区五区黄| 在线电影院国产精品| 国产精品劲爆视频| 欧美成人久久| 久久www成人_看片免费不卡| 一本色道久久综合亚洲精品不卡| 国产自产精品| 国产精品久久国产精品99gif| 欧美1区视频| 欧美一区二区三区四区在线观看地址| 99国产精品国产精品毛片| 精品福利av| 国产日韩欧美自拍| 欧美三级在线| 欧美激情精品久久久久久免费印度| 欧美伊人久久久久久久久影院| 一区二区欧美国产| 亚洲高清毛片| 激情丁香综合| 国产精自产拍久久久久久| 欧美日韩久久精品| 欧美aⅴ一区二区三区视频| 欧美在线不卡视频| 亚洲一区二区视频在线| 亚洲精品久久久久久久久久久久久| 狠狠久久亚洲欧美专区| 国产精品久久久久久模特| 欧美电影在线免费观看网站| 久久免费国产精品| 欧美在线免费观看视频| 亚洲欧美日韩天堂| 亚洲一区二区三区免费视频| 99re6这里只有精品| 亚洲黄色影院| 在线播放日韩| 伊人久久大香线| 国产一区二区欧美日韩| 国产欧美精品在线观看| 国产精品色午夜在线观看| 欧美四级电影网站| 欧美日韩高清一区| 欧美美女福利视频| 欧美国产视频日韩| 欧美暴力喷水在线| 欧美www在线| 欧美11—12娇小xxxx| 久热精品视频在线免费观看| 久久天堂av综合合色| 久久久蜜桃一区二区人| 久久国产精品电影| 久久精品人人做人人爽| 久久精品国产视频| 香蕉久久久久久久av网站| 亚洲一区二区三区在线播放| 一区二区毛片| 亚洲一区二区网站| 亚洲欧美一区在线| 欧美亚洲三区| 久久国产精品72免费观看| 久久久久免费观看|