10

以下用于添加和删除属性的代码readonly(从此处获取):

$('#someid').prop('readonly', true);
$('#someid').removeProp('readonly');

但是 W3C 标准建议使用没有值的 readonly 属性(从这里获得):

我们应该使用:<input type="text" readonly />

反而:<input type="text" readonly="true or readonly or anything" />

因为$('#someid').prop('readonly');不起作用。正确执行此操作的代码是什么?

4

1 回答 1

28

正确的方法是:

$('#someid').prop('readonly', true);

或者

$('#someid').prop('readonly', false);

$('#someid').removeProp('readonly');

工作正常,这些都是原生的 jQuery 方法:

document.getElementById('someid').readOnly = true;

它适当地设置了readonly属性,如果您在控制台中检查元素,您会看到readonly添加的属性没有像它应该根据 W3C 规范那样的值。

readonly 一个属性,prop()是设置属性的方法。

HTML5 的规范说:

readonly = "readonly" 或 ""(空字符串)或 empty
指定该元素表示一个控件,其值不应被编辑。

这意味着以下内容有效:

<input type="text" readonly />
<input type="text" readonly="" />
<input type="text" readonly="readonly" />
于 2013-09-09T01:49:14.907 回答