当前位置 博文首页 > 文章内容

    css readonly和disabled的区别

    作者: 栏目:未分类 时间:2020-07-16 14:00:52

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    一、前言

      要说readonly和disabled的区别,就需要先说说两者的联系;

      两个属性都可以作用于input等表单元素上,都使得元素成为“不可用”的状态

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

      readonly表示“只读”,一般表示对于文字内容只读,即不可更改内容,对于非文字的表单“只读”与“不只读”似乎没有啥区别;

      disabled表示“使残废,使无效”,都残废了,那还管你有没有文字内容,都得残掉。

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

     

    二、正文

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


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

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

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


      复制代码
      //添加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属性只是将元素设置为只读,其他操作正常。

    3. readonly和disabled对表单提交的作用不同

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

    三、总结

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

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

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

      readonly 属性可与 <input type="text"> 或 <input type="password"> 配合使用

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

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

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