在Twitter的Bootstrap中禁用按钮的最佳方法

253 javascript jquery button twitter-bootstrap

我很困惑,当谈到禁用<button>,<input><a>使用类的元素:.btn或者.btn-primary,使用JavaScript/jQuery的.

我使用了以下代码片段来做到这一点:

$('button').addClass('btn-disabled');
$('button').attr('disabled', 'disabled');
$('button').prop('disabled', true);
Run Code Online (Sandbox Code Playgroud)

所以,如果我只提供$('button').addClass('btn-disabled');我的元素,它将在视觉上显示为禁用,但功能将保持不变,但它仍然是可点击的,所以这就是我将元素attrprop设置添加到元素的原因.

有没有人在那里过期同样的问题?这是否是正确的方法 - 使用Twitter的Bootstrap?

Sam*_*l R 320

您只需要该$('button').prop('disabled', true);部分,该按钮将自动进入禁用的类.

  • 不适用于锚点,请参阅我的回答 (28认同)
  • 将此样式添加到您的css`a [disabled] {pointer-events:none; }` (14认同)
  • 要同时停止click事件触发,请添加一个带有`pointer-events:none`的类,如http://stackoverflow.com/a/19477318/45525中所述 (6认同)
  • 我刚试过Bootstrap 3和`$('.button').prop('disabled',true);`停止点击事件传播,即Bootstrap为你处理. (4认同)

Jer*_*n K 115

对于输入和按钮:

$('button').prop('disabled', true);
Run Code Online (Sandbox Code Playgroud)

对于锚点:

$('a').attr('disabled', true);
Run Code Online (Sandbox Code Playgroud)

签入firefox,chrome.

http://jsfiddle.net/czL54/2/


Yar*_*rin 83

建立jeroenk的答案,这是破败的:

$('button').addClass('disabled'); // Disables visually
$('button').prop('disabled', true); // Disables visually + functionally

$('input[type=button]').addClass('disabled'); // Disables visually
$('input[type=button]').prop('disabled', true); // Disables visually + functionally

$('a').addClass('disabled'); // Disables visually
$('a').prop('disabled', true); // Does nothing
$('a').attr('disabled', 'disabled'); // Disables visually
Run Code Online (Sandbox Code Playgroud)

小提琴

  • @msanjay:不 - 小提琴使用Bootstrap 2和*可视*禁用链接/锚点,但不会*功能*禁用它们,就像评论所说.如果将其更改为BS3,它还会在功能上禁用它们. (5认同)

123*_*567 34

最简单的方法是使用disabled属性,就像在原始问题中所做的那样:

<button class="btn btn-disabled" disabled>Content of Button</button>

截至目前,Twitter Bootstrap没有一种方法可以在不使用该disabled属性的情况下禁用按钮的功能.

尽管如此,这将是他们实现到他们的JavaScript库中的一个很好的功能.


Vic*_*cky 31

<div class="bs-example">
      <button class="btn btn-success btn-lg" type="button">Active</button>
      <button class="btn btn-success disabled" type="button">Disabled</button>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 这个问题的真正解决方案.不需要JQuery. (4认同)
  • 这不会阻止点击事件的触发。 (4认同)
  • 不适用于Chrome (2认同)
  • 设置disabled =“disabled”以防止触发点击事件。 (2认同)