6

我正在尝试禁用表单上的所有文本框。其中一个盒子上有一个预输入。当我做:

$(#textbox).attr('disabled', true);

它不再启用,但颜色不会像所有其他文本框在禁用时那样切换。

我相信这是由于 twitter typeahead 造成的,我想知道是否有办法解决它。有谁知道在禁用文本框时如何覆盖文本框背景颜色或完全删除预输入?

我已经尝试过.unbind().addClass("greyBackground")但这些似乎都没有奏效。

4

2 回答 2

13

如果您不关心在textarea禁用时维护 typeahead.js 功能,您可以像这样销毁 typeahead:

$('#textbox').typeahead('destroy');

这将重置/删除 typeahead.js 可能添加的任何属性/样式。如果稍后您想重新添加 typeahead.js 功能,您可以使用以下命令重新初始化它:

$('#textbox').typeahead({ /* configs */ });

此外,typeahead.js 不支持textarea开箱即用的元素,因此除非您使用分叉版本,否则不应假设 typeahead.js 会按预期工作。

于 2013-07-11T20:52:32.007 回答
1

在 Bootstrap 2.2.2 中没有.typeahead('destroy')函数,因此以下内容确实删除了之前绑定的所有侦听器以及它创建的 DOM 元素。

$('#textbox').off()
        .data('typeahead')
        .$menu
        .off()
        .remove();
于 2014-10-10T09:54:13.063 回答