input中的disabled 和 readonly的区别

1、Readonly只针对input(text / password)和textarea有效,

而disabled对于所有的表单元素都有效,

2、但是表单元素在使用了disabled后,当我们将表单以POST或GET的方式提交的话,这个元素的值不会被传递出去,

而readonly会将该值传递出去(readonly接受值更改可以回传,disable接受改但不回传数据)。

disabled和readonly这两个属性有一些共同之处,比如都设为true,则form属性将不能被编辑,往往在写js代码的时候容易混合使用这两个属性,其实他们之间是有一定区别的:

  • 如果一个输入项的disabled设为true,则该表单输入项不能获取焦点,用户的所有操作(鼠标点击和键盘输入等)对该输入项都无效,最重要的一点是当提交表单时,这个表单输入项将不会被提交。
  • 而readonly只是针对文本输入框这类可以输入文本的输入项,如果设为true,用户只是不能编辑对应的文本,但是仍然可以聚焦焦点,并且在提交表单的时候,该输入项会作为form的一项提交。

一般比较常用的情况是:

  1. 在某个表单中为用户预填了某个唯一识别代码,不允许用户改动,但是在提交时需要传递该值,此时应该将它的属性设置为readonly 。
  2. 经常遇到当用户正式提交了表单后需要等待管理员的信息验证,这就不允许用户再更改表单中的数据,而是只能够查看,由于disabled的作用元素范围大,所以此时应该使用disabled,但同时应该注意的是要将submit button也disabled掉,否则只要用户按了这个按钮,如果在数据库操作页面中没有做完整性检测的话,数据库中的值就会被清除。如果说在这种情况下用readonly来代替disabled的话,若表单中只有input(text / password)和textarea元素,那还是可以的,如果存在其他发元素,比如select,用户可以在重新改写值后按回车键进行提交(回车是默认的submit触发按键)
  3. 我们常常在用户按了提交按钮后,利用javascript将提交按钮disabled掉,这样可以防止网络条件比较差的环境下,用户反复点提交按钮导致数据冗余地存入数据库
时间: 2025-01-16 09:28:25

input中的disabled 和 readonly的区别的相关文章

input中的disabled、readonly和hidden

最近开发项目的时候,遇到一个问题,就是我希望某个input中的值不能被修改,刚开始的时候,我想到的是disabled属性!但是,发现表单提交后,值无法传递过来! 解决方法: 可以设置其readonly属性,同样不能被修改,但是表单提交后,值可以传递到后台! 一.HTML中直接设置: 1 <form action="test/addUser"> 2 disabled:<input type="text" value="zhangsan&qu

input标签的disabled和readonly的区别

<form id="form1" runat="server" method="post"> <div> <input type="text" name="txt1" id="txt1" value="txt1" readonly="readonly"/> <input type="text&qu

input属性 disabled与readonly的区别

从效果上看 源码 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <form> 9 <table> 10 <caption>disabled与readonly的区别&

input中id和name属性的区别

input中id和name属性的区别 做网站很久了,但到现在还没有搞明白input中name和id的区别,最近学习jquery,又遇到这个问题,就在网上搜集资料.看到这篇,就整理出来,以备后用. 可 以说几乎每个做过Web开发的人都问过,到底元素的ID和Name有什么区别阿?为什么有了ID还要有Name呢?! 而同样我们也可以得到最classical的答案:ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复 的. 上周我也遇到了ID和Name的问题,在

JQuery EasyUI设置input文本框disabled, readonly属性

因EasyUI对控件进行了封装,所以通常的Jquery代码设置不起作用,如$('#id').attr("readonly", "readonly"). 因此我们选择在input的上一级元素div中加一个class限定,如 <div class="fitem test">           <label>                角色ID<span >*</span>:</label&g

ExtJs中disabled和readOnly美观度的分析

ExtJs中disabled和readOnly美观度的分析 ExtJs中,如果设置输入框为只读属性,一般第一考虑的都是readonly=true 它的效果和正常输入框一样,但是不允许输入: 然而,它很容易引起歧义,让用户第一感觉是它是输入框,有输入信息的冲动,其实不然: 这时候,可以考虑使用disabled=true属性 这下绝对不会认为可输入,一看就知道不允许修改,但字体颜色明显很模糊,所以效果不佳: 因此,使用中常常仍然使用readOnly=true,但修改背景颜色来做到disabled的更

input标签中的id和name的区别

做网站很久了,但到现在还没有搞明白input中name和id的区别,最近学习jquery,又遇到这个问题,就在网上搜集资料.看到这篇,就整理出来,以备后用. 可 以说几乎每个做过Web开发的人都问过,到底元素的ID和Name有什么区别阿?为什么有了ID还要有Name呢?! 而同样我们也可以得到最classical的答案:ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复 的. 上周我也遇到了ID和Name的问题,在页面里输入了一个input type=

input 中的enabled与disabled属性

<style type="text/css"> *{ padding: 0; margin: 0; list-style-type: none; box-sizing:border-box; } body{ padding: 20px; } input[type="text"]:enabled{ background:#f60; } input[type="text"]:disabled{ background:#ccc; } <

disabled和readonly的区别是什么

disabled和readonly的区别是什么:这两个属性有类似之处,但是区别也是巨大的,之所以说类似,是因为这两个属性好像都貌似能够将指定的元素设置为"不可用"状态,下面就简单介绍一下它们两个的区别,希望能够给大家带来一定的帮助.一.作用范围不同:disabled属性可以用语所有的表单元素.readonly属性只对<input type="text">.<textarea>和<input type="password&quo