disabled和readonly的区别

2,504 阅读1分钟

写法

<input type="text" readonly>
<input type="text" disabled>

共同点

  1. 都会使文本框变成只读,不可编辑

不同点

  1. disabled属性在将input文本框变成只读不可编辑的同时,还会使文本框变灰,但是readonly不会。
  2. disabled属性修饰后的文本框内容,在不可编辑的同时,通过js也是获取不到的。但是用readonly修饰后的文本框内容,是可以通过js获取到的,也就只是简单的不可编辑而已!
  3. disabled属性对input文本框,单选radio,多选checkbox都适用,但是readonly就不适用,用它修饰后的单选以及多选按钮仍然是可以编辑状态的。
  4. disabled属性是可以应用于所有的表单元素上面, 而readonly则是只能应用在input(text / password)textarea
  5. 表单设置disabled属性之后,表单的数据不能进行传输,如果传输的话则会为null,而readonly则不影响

总结

  1. disabled样式会改变,对于所有的表单元素都有效,输入项不能获取焦点,用户的所有操作(鼠标点击、键盘输入等)对该输入项都无效,并且数据不能进行传输
  2. readonly只是使文本框不能输入,外观没有变化,只针对input(text / password)textarea之类可以输入文本的输入项有效,用户不能编辑,但鼠标仍然可以聚焦,并且数据可以进行传输