如何使用JQuery或Javascript添加readonly属性(但遵循W3C标准!)

che*_*der 6 javascript jquery

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

$('#someid').prop('readonly', true);
$('#someid').removeProp('readonly');
Run Code Online (Sandbox Code Playgroud)

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

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

代替: <input type="text" readonly="true or readonly or anything" />

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

ade*_*neo 16

正确的方法是:

$('#someid').prop('readonly', true);
Run Code Online (Sandbox Code Playgroud)

要么

$('#someid').prop('readonly', false);
Run Code Online (Sandbox Code Playgroud)

$('#someid').removeProp('readonly');
Run Code Online (Sandbox Code Playgroud)

工作正常以及这些都是本机的jQuery方法:

document.getElementById('someid').readOnly = true;
Run Code Online (Sandbox Code Playgroud)

它会readonly适当地设置属性,如果你检查控制台中的元素,你会看到readonly添加的属性没有像它应该符合W3C规范的值.

readonly 属性,prop()是设置属性的方法.

HTML5的规范说:

readonly ="readonly"或""(空字符串)或空
指定该元素表示不打算编辑其值的控件.

这意味着以下内容有效:

<input type="text" readonly />
<input type="text" readonly="" />
<input type="text" readonly="readonly" />
Run Code Online (Sandbox Code Playgroud)

  • 根据[W3C规范](http://www.w3.org/TR/html-markup/input.number.html),这完全有效. (2认同)