任何人都知道如何做到这一点?
我在下面尝试过的JavaScript无效。
element.readOnly="true";
element.readonly="readonly";
element.disabled="disabled";
尝试下面的jQuery也没有用。
$("#id").attr("disabled","disabled");
$("#id").attr("disabled",true);
$("#id").attr("readonly",true);
$("#id").attr("readonly","readonly");
我做错了什么或是否有另一种方法来实现ie9及以下?
谢谢
答案 0 :(得分:4)
如果要在元素上设置 属性 值,则需要使用与您正在设置的属性相等的字符串。例如,如果您要设置disabled
属性,则应将其设置为"disabled"
。
<input type="text" disabled="disabled" />
$("#id").attr("disabled", "disabled");
如果您要设置 属性 值,则需要使用布尔值:true
或false
。属性仅在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
表示您根本无法更改元素的值。答案 1 :(得分:1)
disabled
和readonly
属性不是属性。
这种区别非常重要,因为jQuery提供了一种不同的方法来设置属性与属性。
您应该使用$().prop()
而不是$().attr()
来设置它们。
$("#id").prop("disabled",true);
$("#id").prop("readonly",true);
使用.attr()
无效。 (它曾经在jQuery 1.5的时代起作用,但是因为他们在jQuery 1.6中引入了.prop()
而没有这样做)