要说readonly和disabled的区别,就需要先说说两者的联系;
两个属性都可以作用于input等表单元素上,都使得元素成为“不可用”的状态;
两者的字面意义先介绍一下:
readonly表示“只读”,一般表示对于文字内容只读,即不可更改内容,对于非文字的表单“只读”与“不只读”似乎没有啥区别;
disabled表示“使残废,使无效”,都残废了,那还管你有没有文字内容,都得残掉。
下面来介绍介绍两者的区别:
二、正文readonly和disabled作用元素的范围不同
由上图可见,readonly并没有对input[type="button"]产生作用,按钮效果仍然在,并没有“不可用”;
而disabled直接对input[type="button"]的按钮效果产生作用,导致按钮不可点击。
那么两者的作用范围区别在哪呢?
disabled属性可以作用于所有的表单元素。
readonly属性只对<input type="text">、<input type="number">、<textarea>和<input type="password">等可以输入的表单元素有效。
readonly和disabled对元素的作用程度不同
//添加input===readonly document.write(\'<br/><br/><input type="number" readonly="readonly" value="button" placeholder="123456">\') //添加input===disabled document.write(\'<br/><br/><input type="number" 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"; })