一. 范围不同
readonly 只对 <input> 和 <textarea> 标签有效
disabled 对所有表单元素都有效, 包括:<input>, <textarea>, <button>, <label>, <option>, <select>等
二. 程度不同
readonly 只是将元素设置为只读,不可输入,对其它操作没有影响
disabled 阻止元素的一切操作。包括 获取焦点,点击事件等
三. 表单提交
readonly 只是将元素设置为只读,不影响表单提交
disabled 设置了该属性的表单元素,值将不会随着表单一起提交
四. JavaScript操作
设置了readonly和disabled的表单元素,用户无法再界面上改变它的值。但通过JavaScript是可以改变其值的,同样背景色,字体颜色等也可以通过JavaScript来改变。
例如:下面的代码运行在chrome浏览器中时,点击“点我”后两个input框的字体颜色、背景色,值都会发生变化。
$('input').attr("readonly","readonly") //将input元素设置为readonly $('input').removeAttr("readonly"); //去除input元素的readonly属性 或 $('input').attr("readonly",true) $('input').attr("readonly",false) $('input').val ('1') // 设置input的值
注: 使用表单post或get传递时会被传递出去
$('input').attr("disabled","disabled") //将input元素设置为readonly $('input').removeAttr("disabled"); //去除input元素的readonly属性 或 $('input').attr("disabled",true) $('input').attr("disabled",false) $('input').val ('0') // 设置input的值
注: 使用表单post或get传递时不会被传递出去