【问题标题】:Disabling an element in jquery 1.6在 jquery 1.6 中禁用元素
【发布时间】:2011-09-13 07:01:20
【问题描述】:

随着 jQuery 1.6 的发布,对 SO 的建议通常是在您过去使用 attr() 的地方开始使用 prop()

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

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

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

更新 事实证明,该元素没有被禁用的原因是因为我在上面的行之前运行了一行:

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

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

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

【问题讨论】:

  • 您要禁用哪种元素?
  • 关于您的更新,它也适用于我:jsfiddle.net/fkling/K95Fr/1
  • 您能以对他人有所帮助的方式回答您自己的问题吗?如果你这样做,你可以选择你的作为正确答案。这可能看起来很奇怪,但它是处理此类情况的首选方式。
  • 我需要等待几个小时才能接受自己的答案。

标签: jquery-1.6


【解决方案1】:
$('.control').prop('disabled', true);

works fine for me.

交替使用

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

更新:

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

【讨论】:

  • 对我来说快了 10 秒。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    使用.prop('disabled', true)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多