问题
$input.disabled = true;

$input.disabled = "disabled";

这是标准方式?反之,如何启用禁用的输入?



解决方法

jQuery 1.6+

要更改 disabled 属性,您应该使用 .prop()< / code> 函数.

$("input").prop('disabled', true);
$("input").prop('disabled', false);

jQuery 1.5 and below

.prop()函数不存在,但 .attr () 类似:

设置已停用的属性.

$("input").attr('disabled','disabled');

要再次启用,正确的方法是使用 .removeAttr() < / p>

$("input").removeAttr('disabled');

In any version of jQuery

你总是可以依赖实际的DOM对象,如果你只处理一个元素,它可能比另外两个选项快一些:

// assuming an event handler thus 'this'
this.disabled = true;

使用 .prop() .attr()方法的优点是可以为一堆选定的项目设置属性.


注意:在1.6中,有 .removeProp() < / a>方法听起来很像 removeAttr(),但不应该使用在原生属性如'disabled'文档:

Note: Do not use this method to remove native properties such as checked, disabled, or selected. This will remove the property completely and, once removed, cannot be added again to element. Use .prop() to set these properties to false instead.

事实上,我怀疑这个方法有很多合法的用法,布尔的道具是这样做的,你应该将它们设置为false,而不是"删除"他们像他们的"属性"对应的1.5




相关问题推荐