52

我在我的应用程序中使用 Bootstrap css 和 js。不小心我点击了一个禁用的下拉列表,发现它正在打开下拉列表。我已经在元素readonly的属性中做到了:select

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

我也试过设置readonly="true",但还是一样。

但是,如果您不使用 jQuery.datepicker,文本框控件可以正常工作。

当我们使用引导程序时,是否有一种特殊的方法可以使下拉控件只读?

4

6 回答 6

99

不,Bootstrap 没有引入禁用下拉菜单的特殊注意事项。

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

或者

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

将工作。我更喜欢给属性值(如第二种形式;在 XHTML 中,属性必须有一个值),但 HTML 规范说:

元素上存在布尔属性表示真值,不存在该属性表示假值。

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

只读和禁用之间的主要区别:*

禁用属性

  • 禁用的表单元素的值不会传递给处理器方法。W3C 称这是一个成功的元素。(这类似于未选中的表单复选框。)
  • 某些浏览器可能会覆盖或为禁用的表单元素提供默认样式。(灰色或浮雕文本)Internet Explorer 5.5 对此特别讨厌。
  • 禁用的表单元素不会获得焦点。
  • 在选项卡导航中跳过禁用的表单元素。

只读属性

  • 并非所有表单元素都具有只读属性。最值得注意的是<SELECT><OPTION>, 和<BUTTON>元素没有只读属性(尽管它们都有禁用属性)
  • 浏览器不提供表单元素只读的默认覆盖视觉反馈
  • 带有只读属性集的表单元素将被传递给表单处理器。
  • 只读表单元素可以接收焦点
  • 只读表单元素包含在选项卡式导航中。

*-来自http://kreotekdev.wordpress.com/2007/11/08/disabled-vs-readonly-form-fields/的公然剽窃

于 2013-01-09T14:58:47.727 回答
12

尝试

$('#xxx').attr('disabled', true);
于 2013-01-09T14:42:56.860 回答
2

尝试

<select id="xxx" name="xxx" class="input-medium" disabled>
于 2013-01-09T14:44:40.587 回答
2

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

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

$("input").prop('disabled', false);
于 2016-12-21T16:16:58.620 回答
0
<select id="message_tag">
<optgroup>
<option>
....
....
</option>
</optgroup>

在这里,我只是为“选择”元素删除了引导 css。使用以下 CSS 代码。

#message_tag_chzn{
display: none;
}

 #message_tag{
  display: inline !important;
}
于 2015-06-19T12:43:53.840 回答
0

你也可以使用“只读”

<select id="xxx" name="xxx" class="input-medium" readonly>
于 2015-07-27T13:29:20.187 回答