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

当涉及到用JavaScript/jQuery禁用<button><input><a>类的元素时,我感到困惑。

我使用了下面的片段来做这件事。

$('button').addClass('btn-disabled');
$('button').attr('disabled', 'disabled');
$('button').prop('disabled', true);

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

有人遇到过同样的问题吗?在使用Twitter的Bootstrap时,这样做是否正确?

解决办法

你只需要$('button').prop('disabled', true);部分,按钮将自动采取禁用类。

评论(7)

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

button的内容

到目前为止,Twitter Bootstrap还没有一种方法可以在不使用disabled属性的情况下禁用一个按钮的功能。

尽管如此,这将是他们在javascript库中实现的一个很好的功能。

评论(3)

无论在按钮/锚点/链接上添加什么属性来禁用它,bootstrap只是给它添加了样式,用户仍然可以点击它,因为仍然有onclick事件。所以我的简单解决方案是检查它是否被禁用,然后删除/添加onclick事件。

if (!('#button').hasAttr('disabled'))
 $('#button').attr('onclick', 'someFunction();');
else
 $('#button').removeattr('onclick');
评论(3)