【问题标题】:Disabling Controls in Bootstrap在引导程序中禁用控件
【发布时间】:2012-12-23 15:30:06
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我终于知道了。与推特无关。这是简单的 HTML。 readonly only 使控件看起来像只读的。但是 disabled 使控件被禁用。

标签: html twitter-bootstrap


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    你也可以使用“只读”

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

    【讨论】:

      【解决方案3】:
      <select id="message_tag">
      <optgroup>
      <option>
      ....
      ....
      </option>
      </optgroup>
      

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

      #message_tag_chzn{
      display: none;
      }
      
       #message_tag{
        display: inline !important;
      }
      

      【讨论】:

        【解决方案4】:

        不,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 对此特别讨厌。
        • 禁用的表单元素不会获得焦点。
        • 禁用的表单元素 在标签导航中被跳过。

        只读属性

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

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

        【讨论】:

        • 非常重要:禁用表单元素的值不会传递给处理器方法。 W3C 称其为成功元素。(这类似于未选中的表单复选框。)!
        • 只读和禁用的区别很有帮助。
        【解决方案5】:

        试试

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

        【讨论】:

          【解决方案6】:

          试试

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

          【讨论】:

          • 他使用引导程序而不是 jquery 来询问它
          • 另外,从 jQuery 1.6 开始,这将是 prop() 而不是 attr()。
          猜你喜欢
          • 2016-05-04
          • 2015-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多