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

标签 javascript jquery

以下代码添加和删除属性readonly作品(来自 here ):

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

但是 W3C 标准建议使用没有值的只读属性(来自 here ):

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

改为:<input type="text" readonly="true or readonly or anything" />

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

最佳答案

正确的做法是:

$('#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" or "" (empty string) or empty
Specifies that element represents a control whose value is not meant to be edited.

这意味着以下是有效的:

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

关于javascript - 如何使用 JQuery 或 Javascript 添加只读属性(但遵循 W3C 标准!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18690463/

相关文章:

javascript - 遍历对象数组

javascript - 如何将 3 个数组合并为一个具有相同索引的数组 - JavaScript

javascript - 为什么我不能将其放入 Promise.catch 处理程序中?

jquery - 重置jquery minicolors颜色值

javascript - 为什么我的按钮不起作用?

javascript - 如何优化 Ember JS 中组件的渲染

javascript - 删除 javascript 函数覆盖

jquery - 知道为什么快速移动光标时没有注册 mouseleave 事件吗?

php - 使用 jQuery 从多个表单字段创建 JSON 对象

javascript - 仅在 Blade 模板中使用 JQuery 检查每行的复选框