禁用Bootstrap中的控件

53

我在我的应用程序中使用Bootstrap的CSS和JS。不小心我点击了一个被禁用的下拉列表,发现它竟然打开了下拉菜单。我已经在


终于我找到了。这与Twitter没有任何关系,只是简单的HTML而已。readonly属性仅仅是让控件看起来像是只读的,而disabled属性则是真正地禁用了该控件。 - Firnas
6个回答

100
不,Bootstrap并没有为禁用下拉菜单引入特殊的考虑。
<select id="xxx" name="xxx" class="input-medium" disabled>

或者

<select id="xxx" name="xxx" class="input-medium" disabled="disabled">

我会。我更喜欢给属性赋值(就像第二种形式一样;在XHTML中,属性必须有一个值),但是HTML规范说:

元素上的布尔属性的存在表示为true值,而属性的缺失表示为false值。

(来自http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

只读和禁用之间的关键区别:*

禁用属性

  • 禁用表单元素的值不会传递给处理器方法。 W3C将其称为成功元素。 (这类似于未选中的表单复选框。)
  • 某些浏览器可能会覆盖或提供禁用表单元素的默认样式。 (灰色或凸出文本)Internet Explorer 5.5特别恶劣。
  • 禁用表单元素不能获得焦点。
  • 禁用表单元素在制表导航中被跳过。

只读属性

  • 并非所有表单元素都有readonly属性。最值得注意的是,<SELECT><OPTION><BUTTON>元素没有readonly属性(虽然它们都有disabled属性)。
  • 浏览器不会提供默认的覆盖视觉反馈来表示表单元素为只读状态。
  • 设置了readonly属性的表单元素将被传递到表单处理器。
  • 只读表单元素可以获得焦点。
  • 只读表单元素包含在选项卡导航中。

*-从http://kreotekdev.wordpress.com/2007/11/08/disabled-vs-readonly-form-fields/抄袭的内容。


5
非常重要:禁用表单元素的值不会传递到处理器方法中。W3C将其称为成功元素。(这类似于未被选中的复选框。)! - lzap
2
只读和禁用之间的区别非常有帮助。 - Dov Miller

12

试一试

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

他正在使用Bootstrap而不是jQuery来询问它。 - ismail baig
4
自 jQuery 1.6 开始,这应该使用 prop() 而不是 attr()。 - Jpsy

3

尝试

<select id="xxx" name="xxx" class="input-medium" disabled>

2

请记住,对于 jQuery 1.6+ 版本,您应该使用 .prop() 函数。

$("input").prop('disabled', true);

$("input").prop('disabled', false);

1
也可以使用 "readonly"。
<select id="xxx" name="xxx" class="input-medium" readonly>

0
<select id="message_tag">
<optgroup>
<option>
....
....
</option>
</optgroup>

这里我只是针对“select”元素移除了Bootstrap CSS,使用以下CSS代码。

#message_tag_chzn{
display: none;
}

 #message_tag{
  display: inline !important;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接