文章目录

  • 1、disabled和readonly
    • 联系
    • 区别
    • 案例
    • 什么属性可以阻止选中或者拷贝文本呢?
      • html
      • css
    • hidden 属性是什么?
      • 那么hidden为什么不能和disabled一起使用呢?
  • 2、disabled之后,上面的事件还在吗?
  • 3、焦点是什么?
    • DOM0级事件、DOM2级事件是啥?

今天吃饭,和后台谈论了一下他的面试问题,感觉几个问题都直击重点,这里菜鸟就总结一下!

1、disabled和readonly

两者的字面意义先介绍一下:

  1. readonly表示 “只读” ,一般表示对于文字内容只读,即不可更改内容,对于非文字的表单根本没有readonly属性

  2. disabled表示 “使残废,使无效” ,管你有没有文字内容,都无法使用,可以作用于全部表单元素

联系

先说说两者的联系:

两个属性都可以作用于input等表单元素上,都使得元素成为 无法编辑 的状态

区别


案例

readonly 属性规定输入字段为只读

只读字段是不能修改的。不过,用户仍然可以使用 tab 键切换到该字段,还可以选中或拷贝其文本

readonly 属性可以防止用户对值进行修改,直到满足某些条件为止(比如选中了一个复选框)。然后,需要使用 JavaScript 消除 readonly 值,将输入字段切换到可编辑状态。

注释:readonly 属性可与 < input type=“text”> 或 < input type=“password”> 配合使用。

disabled 属性规定应该禁用 input 元素

被禁用的 input 元素既不可用,也不可点击。可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等)。然后,就需要通过 JavaScript 来删除 disabled 值,将 input 元素的值切换为可用。

注释:disabled 属性无法与 < input type=“hidden”> 一起使用。

说到这里,其实有引出了两个问题

  1. 什么属性可以阻止选中或者拷贝文本呢?
  2. hidden 属性是什么?

什么属性可以阻止选中或者拷贝文本呢?

html


具体见我的博客:重学前端 重要且实用的HTML5新语义元素(mark标记文本/progress任务进度/meter度量衡/是否可编辑内容/details补充/已移除)(第七天)

css

user-select:none

hidden 属性是什么?


详情见我的博客:重学前端 详解表单 / 详解input / 浏览器私有前缀的作用(第六天)

那么hidden为什么不能和disabled一起使用呢?

其实不应该说不能一起用,而应该说一起用没什么意义,毕竟hidden的作用就是隐藏字段,并在提交的时候一并提交了,但是disabled直接就不提交,那么又不显示又不提交,这个表单元素本身就没有什么实际意义,所以不需要!

2、disabled之后,上面的事件还在吗?

<form action=""><input type="text" readonly onclick="console.log(111)" onfocus="console.log(1111)" onblur="console.log(11111)" value="111111"><input type="text" disabled onclick="console.log(222)" onfocus="console.log(2222)" onblur="console.log(22222)" value="111111"><input type="text" onclick="console.log(333)" onfocus="console.log(3333)" onblur="console.log(33333)" value="111111"><input type="hidden" disabled value="2222"><button disabled onclick="alert('aaa')">disabled按钮</button><button onclick="alert('bbb')">disabled按钮</button>
</form>

运行结果表明,disabled之后上面的事件是不复存在的。

注意:

这里之所以不用alert是因为,onblur 和 onfocus会因为弹窗要点击确认而不停的循环!

3、焦点是什么?

菜鸟理解的焦点是:每次点击鼠标,鼠标都会将点击到的元素作为焦点,但是并不是所有元素都有获取焦点的能力,只有有用户交互的元素才是真的有焦点,所以焦点的onfocus 常用于 input、select、button、 a ,其他元素没有,需要自己通过 tabIndex 属性设置!

参考:深入理解javascript中的焦点管理

这里又引出来一个问题

  1. DOM0级事件、DOM2级事件是啥?

DOM0级事件、DOM2级事件是啥?

其实就是一种标准/规范!

参考:DOM0、DOM1、DOM2级事件

disabled和readonly 以及焦点问题相关推荐

  1. CSS属性disabled和readonly的区别是什么

    在博客园中看到这样一篇文章,关于disabled和readonly的区别,以前还真的没有注意它们的区别,还是有必要知道它们的区别的,所以转载了. 这两个属性有类似之处,但是区别也是巨大的,之所以说类似 ...

  2. input中的disabled 和 readonly的区别

    1.Readonly只针对input(text / password)和textarea有效, 而disabled对于所有的表单元素都有效, 2.但是表单元素在使用了disabled后,当我们将表单以 ...

  3. Jquery对元素应用disabled和readonly

    摘录:Jquery的api中提供了对元素应用disabled和readonly属性的方法 1.readonly   $('input').attr("readonly"," ...

  4. Jquery 控制disabled和readonly

    Jquery的api中提供了对元素应用disabled和readonly属性的方法,在这里记录下.如下:  1.readonly    $('input').attr("readonly&q ...

  5. input属性disabled和readonly的区别(超详细的~~~~)

    1.两种情况的写法,没什么太大的区别,两个属性而已 disabled写法:<input type="text" name="aaa" value=&quo ...

  6. input标签disabled和readonly属性的区别

    input标签disabled和readonly属性的区别 readonly和disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容. disabled: 对于所有的表单 ...

  7. 对于HTML表单输入字段,disabled =“ disabled”和readonly =“ readonly”有什么区别?

    我已经阅读了一些,但是似乎找不到关于不同的浏览器如何对待事物的可靠信息. #1楼 当元素具有禁用属性时,不会触发任何事件. 以下任何都不会触发. $("[disabled]").c ...

  8. input属性disabled和readonly的区别

    两种属性的写法如下: 1.<input type="text" name="name" value="xxx" disabled=&q ...

  9. 【转载】表单中 Readonly 和 Disabled 的区别

    今天写代码,遇到表单提交的问题,某个字段在不同的情况下,要传递不同的值进行赋值,试过一些方法都有些问题,后来请教前端同学,使用 disabled 这个属性终于搞定了问题,查到一篇讲解 readonly ...

最新文章

  1. 一步一步教你启用WP2.6 Turbo功能
  2. python编写星号菱形中间是空的_简单空实心图形打印|Python练习系列[3]
  3. 10行代码AC——1016 部分A+B (15分)
  4. Java中HashMap遍历的两种方式
  5. Java 10 – JEP 286:局部变量类型推断
  6. 【资源】斯坦福李飞飞高徒Johnson博士论文: 组成式计算机视觉智能(附195页PDF)
  7. Spring : Spring Aop JDK动态代理调用过程
  8. ios软件商店上架老被打回_一款APP上架苹果应用商店的流程,费用是多少?
  9. 一加功耗dump开关_一加5/5TFlyme8 9.11.14 支持功能一览
  10. Android 设计模式:(一)策略模式 —— 封装行为的大局观
  11. u盘启动linux hp服务器,分享下用U盘启动给服务器【HP DL165 G7】安装原版2003系统的经验...
  12. 三极管实现与门、或门和非门操作
  13. vncviewer退出全屏
  14. javaee实验:使用mvc模式 设计一个图书管理系统
  15. 攻防世界杂项(misc)--新手练习区(详解十二道题完结,附件做题过程中使用到的各种工具和网站)
  16. NETCore2.2/3.0+使用带有权限验证的Swagger
  17. ARM Cortex M3M4处理器复位流程
  18. 计算机考试答题设计用例图,学生网上考试系统的设计与实现
  19. (pytorch进阶之路)Masked AutoEncoder论文及实现
  20. ID3算法实现西瓜好坏和天气影响出行的算法

热门文章

  1. 背水之赌:孤注ARM或成软银最后的冒险
  2. vue3+ts使用app.config.globalProperties全局挂载实例方法,扩展模块解决ts类型检查报错
  3. 278.sqlserver2008数据库操作
  4. HHVM安装使用教程
  5. 【每日1刷系列】软件测试常见面试题—测试基础(概念)
  6. 刷表支付! AMAZFIT智能运动手表2支持支付宝
  7. android okgo 参数map,Okgo分享
  8. Hive 中分区是否越多越好?
  9. 【linux】查看文件目录大小
  10. Appium+python自动化29-appium对博客园APP进行自动化测试