如果您在元素上设置 attribute 值,那么您需要使用与您设置的属性相同的字符串。例如,如果您正在设置disabled 属性,那么您应该将其设置为等于"disabled"。
HTML
<input type="text" disabled="disabled" />
JavaScript
$("#id").attr("disabled", "disabled");
如果您要设置 属性 值,则需要使用布尔值:true 或 false。属性只能在 JavaScript 中设置:
JavaScript
element.disabled = true;
在上面的第一个示例中,您将 JavaScript 属性设置为字符串,而不是布尔值。这就是它不起作用的原因。
以下是适合您的可能性:
//Any of the following work
element.readOnly = true; //It is readOnly, not readonly
element.disabled = true;
$("#id").attr("disabled", "disabled");
$("#id").attr("readonly", "readonly");
//Additionally, you can use jQuery's prop() method, but I don't recommend it.
$("#id").prop("disabled", true);
$("#id").prop("readOnly", true);
$("#id").prop("readonly", true); //jQuery will bridge the gap here, and fix this for you.
了解disabled 和readonly 提供不同的功能也很重要:
-
disabled 表示你根本无法与元素交互。 disabled 的元素是不可变的,这意味着它们的值不能被修改。它们也会从表单提交中省略。
-
readonly 表示您根本无法更改元素的值。