css readonly和disabled的区别

2021-08-07  本文已影响0人  Xindot

disabled属性阻止对元素的一切操作,例如获取焦点,点击事件等等。
readonly属性只是将元素设置为只读,其他操作正常。

参考:https://www.cnblogs.com/nangezi/p/9168228.html

一、前言

要说readonly和disabled的区别,就需要先说说两者的联系;
  两个属性都可以作用于input等表单元素上,都使得元素成为“不可用”的状态
  两者的字面意义先介绍一下:
  readonly表示“只读”,一般表示对于文字内容只读,即不可更改内容,对于非文字的表单“只读”与“不只读”似乎没有啥区别;
  disabled表示“使残废,使无效”,都残废了,那还管你有没有文字内容,都得残掉。

下面来介绍介绍两者的区别:

二、正文

  1. readonly和disabled作用元素的范围不同

    image

    由上图可见,readonly并没有对input[type="button"]产生作用,按钮效果仍然在,并没有“不可用”;
    而disabled直接对input[type="button"]的按钮效果产生作用,导致按钮不可点击。

    那么两者的作用范围区别在哪呢?
    disabled属性可以作用于所有的表单元素。
    readonly属性只对<input type="text">、<input type="number">、<textarea>和<input type="password">等可以输入的表单元素有效。

  2. readonly和disabled对元素的作用程度不同

    image
//添加input===readonly
document.write('<br/><br/><input type="number" name="number1" readonly="readonly" value="button" placeholder="123456">')

//添加input===disabled
document.write('<br/><br/><input type="number" name="number2" disabled="disabled" value="button" placeholder="123456">')

//给input添加blur事件==边框变成红色===readonly
document.querySelector("input[name='number1']").addEventListener("blur", function(){
    document.querySelector("input[name='number1']").style.cssText = "border: 1px solid red";
})

//给input添加blur事件==边框变成红色===disabled
document.querySelector("input[name='number2']").addEventListener("blur", function(){
    document.querySelector("input[name='number2']").style.cssText = "border: 1px solid red";
})
通过上面的测试可以知道,**`readonly`**属性只是将元素设置为只读,可以获取焦点、失去焦点。而**`disabled`**属性直接阻止对元素的一切操作。

**`disabled`**属性阻止对元素的一切操作,例如获取焦点,点击事件等等。
**`readonly`**属性只是将元素设置为只读,其他操作正常。
  1. readonly和disabled对表单提交的作用不同

    disabled属性可以让表单元素的值无法被提交。
    readonly属性则不影响提交问题。
    这个需要进行测试。。。

三、总结

上一篇 下一篇

猜你喜欢

热点阅读