10

随着 jQuery 1.6 的发布,关于 SO 的建议通常是从prop()您曾经使用的地方开始使用attr().

当我想禁用一个元素时会发生什么?

$('.control').prop('disabled', 'disabled');
$('.control').prop('disabled', true);

这些似乎都没有禁用控件。禁用元素是规则的例外吗?

更新 结果发现该元素未被禁用的原因是因为我在上面的行之前运行了一行:

$('.control').removeProp('disabled');

在启用控件时,我已经习惯了使用 .removeAttr() 所以认为 .removeProp 就足够了。相反,请使用以下命令启用控件:

$('.control').prop('disabled', false);
4

3 回答 3

13
$('.control').prop('disabled', true);

对我来说很好

或者使用

$('.control').attr('disabled', 'disabled');

更新:

但即使$('.control').prop('disabled', 'disabled');$('.control').attr('disabled', true);禁用该元素也是如此。因此,如果它对您不起作用,那么问题实际上是您要禁用哪个元素。甚至可以禁用吗?

于 2011-05-05T00:52:59.007 回答
3

确保您没有.removeProp('disabled')尝试禁用的元素。

于 2011-05-05T01:23:52.870 回答
1

使用.prop('disabled', true).

http://jsfiddle.net/mattball/BaLHf/

于 2011-05-05T00:53:09.137 回答