【问题标题】:How to disable a label with jQuery?如何使用 jQuery 禁用标签?
【发布时间】:2013-07-07 07:31:51
【问题描述】:

如何使用 jQuery 禁用标签?我试过了:

$('#some-id').prop('disabled', true);

但它没有变灰。

我的 HTML 是:<label for="some-id">Label Here</label><input id="some-id"/>

【问题讨论】:

  • 你必须设置一个css规则来使标签变灰
  • 已经在 stackoverflow 上询问过:stackoverflow.com/questions/7330541/…
  • 标签在禁用时不会自动改变颜色。你需要在你的 CSS 中定义一个对应的类。

标签: javascript jquery html


【解决方案1】:

labels 没有内置的禁用属性。您需要自己添加一个类来禁用它们。

类似:

.disabled {
   color: darkgrey;
   background-color: grey;
}

并将类添加到您的元素:

$('#some-id').addClass('disabled');

【讨论】:

    【解决方案2】:

    要禁用标签,请禁用与其关联的表单控件。

    但这不会改变标签的外观,因为您必须更改适用于它的 CSS。最好的方法是从元素中添加(或删除)一个类(并拥有一个与该类匹配的预先存在的 CSS 规则集)。

    【讨论】:

    • 这是一个比公认的更好的答案,IMO。接受的答案只会使它看起来被禁用,而这建议禁用标签控制的输入并使其看起来被禁用。
    【解决方案3】:

    您可以像这样禁用输入:

    $("#test").attr("disabled", "disabled");
    

    应该注意,您不能禁用标签,因为它不接受任何输入。如果您希望它看起来被禁用,您可以考虑将文本的颜色更改为灰色。

    $("#test").css("color", "#666");
    

    【讨论】:

    • 那次投票是在您编辑之前,可能是因为您无法使用 .attr() 或其他任何方式禁用标签
    【解决方案4】:

    当你禁用输入时,你应该在标签中添加一个禁用的类。如果您想将所有代码保存在同一个位置,您可以这样做:

    $('#some-id, [for="some-id"]').prop('disabled', true).addClass('disabled');
    

    工作JSFiddle example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      相关资源
      最近更新 更多