使用jQuery禁用/启用输入?

问题描述 投票:2234回答:18
$input.disabled = true;

$input.disabled = "disabled";

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

javascript jquery html-input disabled-input
18个回答
3743
投票

jQuery 1.6 +

要更改disabled属性,应使用.prop()功能。

.prop()

jQuery 1.5及以下版本

$("input").prop('disabled', true); $("input").prop('disabled', false); 函数不存在,但是.prop()的作用类似:

设置禁用的属性。

.attr()

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

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

在任何版本的jQuery中

您总是可以依赖于实际的DOM对象,如果只处理一个元素,它可能会比其他两个选项快一点:

.removeAttr()

使用.removeAttr()$("input").removeAttr('disabled'); 方法的优点是可以为一堆选定项设置属性。


注意:在1.6中,有一个// assuming an event handler thus 'this' this.disabled = true; 方法听起来很像.prop(),但在诸如.attr()的本机属性上它应该不使用从文档摘录:

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

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


1
投票

禁用:


1
投票

对输入类型禁用true:


1
投票

这对我有用


0
投票

我使用了@gnarf答案并将其添加为函数


0
投票

2018,不带JQuery(ES6)


0
投票

像这样使用,


0
投票

方法4


-1
投票
 $( "#id" ).prop( "disabled", true );

    $( "#id" ).prop( "disabled", false );

-1
投票

在jQuery Mobile中:


57
投票

仅出于新约定的考虑&&使之适应未来(除非ECMA6(????)发生了巨大变化:]


31
投票
removeAttr()

13
投票
    // Disable #x
    $( "#x" ).prop( "disabled", true );
    // Enable #x
    $( "#x" ).prop( "disabled", false );

8
投票

您可以将其放在代码的全局位置:


6
投票

如果只想反转当前状态(如切换按钮行为):


5
投票

有很多使用它们的方法,您可以启用/禁用任何元素


2
投票

2018年更新:


2
投票

您可以使用jQuery prop()方法来禁用或启用表单元素或使用jQuery动态控制。 prop()方法需要jQuery 1.6及更高版本。

© www.soinside.com 2019 - 2024. All rights reserved.