一尘不染

JavaScript 禁用/启用jQuery输入?

javascript

$input.disabled = true;

要么

$input.disabled = "disabled";

哪种标准方法?相反,如何启用禁用的输入?


阅读 369

收藏
2020-04-23

共1个答案

一尘不染

jQuery 1.6以上

要更改disabled属性,您应该使用.prop()函数。

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

jQuery 1.5及以下

.prop()函数不存在,但.attr()具有相似的功能:

设置禁用的属性。

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

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

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

在任何版本的jQuery中

您始终可以依赖实际的DOM对象,并且如果只处理一个元素,它可能比其他两个选项要快一些:

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

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


注意:
在1.6中,有一种.removeProp()听起来很像的方法removeAttr(),但不应在本'disabled' 文档中的诸如Excerpt之类的本机属性上使用:

注意:请勿使用此方法删除本机属性,例如选中,禁用或选定。这将完全删除该属性,并且一旦删除,就不能再次将其添加到element中。使用.prop()将这些属性设置为false。

实际上,我对此方法有很多合法用途表示怀疑,布尔道具的使用方式应该设置为false,而不是像1.5中的“属性”对应对象那样“删除”它们。

2020-04-23