输入[disabled = true]和jQuery

时间:2011-06-18 13:40:03

标签: jquery css

如何让input[disabled=true]在jQuery中工作?

http://jsfiddle.net/Bps9U/

3 个答案:

答案 0 :(得分:9)

disabledboolean attribute,因此只有两种状态:设置而不设置。

以下都是平等的:

<input disabled="true">
<input disabled="disabled" />
<input disabled>
<input disabled="">

您可以将所有变体与$("input[disabled]")匹配。

使用jQuery,您可以使用$(...).prop('disabled')获取元素的状态,这将返回一个布尔值。

答案 1 :(得分:2)

1).attr而不是.propThe docs
2)使用disabled字符串作为属性值(而不是true

An example

编辑正如 Kos 在评论中指出的那样,prop是jQuery 1.6或更高版本中的有效函数。

答案 2 :(得分:2)

这是您的原始代码:

$('<input class="inp" type="text" value="jquery" />').prop('disabled', true).appendTo('body');

此代码中有两个错误:

首先,您应该使用的JQuery函数是.attr(),而不是.prop()

其次,true需要设置为一个字符串,因为你现在拥有它,它只是将它设置为Javascript布尔值,这与你的"true"不一样想用。

但是,我还要指出disabled属性的正确值实际上是disabled="disabled",而不是disabled"true"。两者都适用于所有浏览器,但前者是正确的值,所以这就是你应该使用的。

鉴于这一切,我们可以将您的代码更新为:

$('<input class="inp" type="text" value="jquery" />').attr('disabled', 'disabled').appendTo('body');

...并更改您的HTML和CSS以使用disabled="disabled"input.inp[disabled=disabled]

(顺便说一句,CSS也可以写成input.inp[disabled],这可以适用于属性的任何值。

希望有所帮助。