在前端开发中,常用的焦点事件有focusblur

来看看在菜鸟教程(https://www.runoob.com/jsref/met-html-focus.html)中的介绍:

  • focus() 方法用于为元素设置焦点(如果可以设置)。
  • 提示:使用 blur()方法来移除元素焦点。

菜鸟教程里说“如果可以设置”,那么哪样的元素可以设置,哪样的元素又不可以设置呢?对于不可以设置焦点事件的元素,如何让它也能够使用焦点事件?One by one。

哪些元素可以设置focus/blur

默认表单元素可以设置焦点事件。那么表单元素都具体包含哪些呢?

继续去菜鸟教程(https://www.runoob.com/html/html-forms.html)里找答案:

  • 表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等等。

当然也少不了HTML5新增的表单元素,汇总如下图:

哪些元素不可以设置focus/blur

除上图所有表单元素之外。

非表单元素如何设置focus/blur

给非表单元素添加tabindex属性即可。

先看看W3school(http://www.w3school.com.cn/jquery/event_focus.asp)对focus事件的定义和用法:

  • 当元素获得焦点时,发生 focus 事件。
  • 当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。
  • focus() 方法触发 focus 事件,或规定当发生 focus 事件时运行的函数。

所以,要想让元素获得焦点, 可以鼠标点击,也可以使用tab键通过tabindex数值定位到。

再来看看W3school(http://www.w3school.com.cn/tags/att_standard_tabindex.asp)对此属性的介绍:

  • tabindex 属性规定元素的 tab 键控制次序(当 tab 键用于导航时)。

那么表单元素和tab键有什么关联?有时候我们浏览一个网页,特别是填写表单的页面,误触或按到tab键,发现焦点自动跑到表单元素,如下图:

当用户填写页面上那么多表单项时,不用我们手动点击鼠标一个个切换填写下一个表单项,而直接按下tab键以快速高效完成表单的填写。这就是(当 tab 键用于导航时)的意思。如此人性化的设计或网页规范标准大大节省了用户的时间,也给用户更佳的UI体验。 (ps:不仅表单元素,<a>元素也有tab导航的效果)

所以,可以理解为表单元素默认在创建后,默认会被赋予tabindex属性,按照文档顺序从上到下,值从1开始到最后。而非表单元素,若想使用焦点,也要拥有tabindex属性,为了不影响页面其他表单元素的tab导航切换操作顺序,一般给非表单元素设置属性:

tabindex=-1

以上。

转载于:https://www.cnblogs.com/songzehao/p/10854258.html

非表单元素如何使用焦点事件相关推荐

  1. 给自己提个醒:关于document.getElementsByName无法获取非表单元素

    document.getElementsByName自己一厢情愿以为可以获取所有元素,以前也碰到过,但是不长记性,还是记录下来比较好. document.getElementsByName只能获取表单 ...

  2. 非表单元素跟表单元素

    非表单元素的属性有: href ,title, id src className 表单元素属性: value:用于大部分表单元素内容获取除了option type 可以获取input标签的类型(输入框 ...

  3. H5--新增表单元素控件属性事件

    H5网站重构 先简单回顾一下H5新标签:结构性标签.功能性标签 结构性标签:负责web上下文件结构的定义 功能性标签:功能性内容的表达 表单-新增控件类型 HTML5 增加了多个新的表单输入类型,这些 ...

  4. html元素全屏右键显示覆盖,HTML表单元素覆盖样式元素问题及其补救之道

    HTML表单元素覆盖样式元素问题及其补救之道 更新时间:2006年07月27日 00:00:00   作者: 在设计HTML页面的过程中经常会遇到表单元素覆盖样式元素引起的问题,图一就是一个典型的例子 ...

  5. html页面中看不到的表单元素,解决HTML表单元素覆盖样式元素问题_html

    在设计html页面的过程中经常会遇到表单元素覆盖样式元素引起的问题,图一就是一个典型的例子.不要小看这个貌似"低级"的问题,即使一些规模较大的网站上类似的问题也绝不鲜见.本文探讨了 ...

  6. HTML表单事件,获取焦点时、失去焦点时、即将获取焦点时、即将失去焦点时、输入值时、选取文本时、表单元素的内容改变时、提交时....

    表单事件简介 onfocus 元素获取焦点时触发 onblur 元素失去焦点时触发 onfocusin 元素即将获取焦点时触发 onfocusout 元素即将失去焦点时触发 oninput 元素获取用 ...

  7. 新增表单元素属性事件

    表单-新增控件类型 HTML5 增加了多个新的表单输入类型,这些新特性提供了更好的输入控制和验证,主要内容如下. ①email.②url.③number.④range ⑤Date pickers (d ...

  8. 子节点含有表单元素的div元素的blur事件

    1.div元素的blur事件 blur事件一般在表单元素如input元素才是存在的,对div.span等元素时无效的,但是可以给div元素加上tabindex属性,也可以让div等元素有焦点,所以bl ...

  9. JavaScript将焦点设置为HTML表单元素

    本文翻译自:JavaScript set focus to HTML form element I have a web form with a text box in it. 我有一个带有文本框的W ...

最新文章

  1. PHP简单封装MysqlHelper类
  2. 通过域名访问自己部署到服务器上的项目
  3. P3382 【模板】三分法,难度⭐⭐⭐
  4. 原创 | 斯坦福Machine Learning with Graphs 学习笔记(第一讲)
  5. 一周一论文(翻译)——[SIGMOD 2015] TIMELY RTT-based Congestion Control for the Datacenter
  6. Netty实战 IM即时通讯系统(七)数据传输载体ByteBuf介绍
  7. 【Qt】QModbusRequest类
  8. pyperclip模块
  9. 微信小程序点击跳转出现背景
  10. 怎么用java实现打字功能_怎么用JAVA编写一个打字游戏
  11. linux安装到内存中,Linux安装识别大内存的补丁程序
  12. GitLab5.2 创建项目故障
  13. springcloud-gateway路由配置和跨域配置
  14. 2018年注册测绘师考试详情解析
  15. jieba 使用笔记
  16. 【OpenCV】 码书(CodeBook)基本原理介绍
  17. JobScheduler布置后台任务以及实现进程保活?
  18. 闲鱼互动玩法标准化建设
  19. React(10)-组件通信(important)
  20. mavens使用阿里云国内私服下载

热门文章

  1. as 怎么将多个cpp文件代码编译成so_你编写的Java代码是咋跑起来的?
  2. 循环神经网络_小孩都看得懂的循环神经网络
  3. Error creating bean with name 解决办法
  4. windows系统bat批处 注册一个exe执行文件变成服务
  5. java判断是否失效_java – 如何在输入有效之前检查无效输入和循环?
  6. 一般将来时语法课教案_优秀教案人教版必修二Unit2——语法专题课训练
  7. 点击复制公众号按钮_96编辑器如何复制文章到公众号发布?
  8. 电脑课装b专用代码_JavaScript无形装X,最为致命
  9. python深拷贝和浅拷贝的区别_【转】python的复制,深拷贝和浅拷贝的区别
  10. java2实用教程第四版实验指导_Java2实用教程(第4版)实验指导与习题解答_IT168文库(精)...