【问题标题】:materialize css select is not working properly实现 css 选择无法正常工作
【发布时间】:2016-06-22 06:43:09
【问题描述】:

我正在尝试在物化 css 中使用选择字段。但它似乎不能正常工作 我的代码:

<div class="container">  
  <div class="row">

    <div class="input-field s6">
      <label >OS Version</label>
      <select class="validate">
        <option value="" disabled selected>Choose your option</option>
        <option value="1">Option 1</option>
        <option value="2">Option 2</option>
        <option value="3">Option 3</option>
      </select>

    </div>
  </div>
</div>

    <!--  Scripts-->
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="js/materialize.js"></script>
    <script src="js/init.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
      $('select').material_select();
    });

    </script>

在此它正在呈现一个选择字段,但标签仍然与选择字段重叠。如图:

来自http://materializecss.com/forms.html 我已经检查了我在哪里找到了这个:

<div class="select-wrapper">
  <span class="caret">▼</span>
  <input class="select-dropdown" readonly="true" data-activates="select-options-6162e8f3-f286-fe44-8513-ab1ff6541fb1" value="Choose your option" type="text">
  <ul style="width: 358px; position: absolute; top: 0px; left: 0px; opacity: 1; display: none;" id="select-options-6162e8f3-f286-fe44-8513-ab1ff6541fb1" class="dropdown-content select-dropdown">
    <li class="disabled"><span>Choose your option</span></li>
    <li class=""><span>Option 1</span></li>
    <li class=""><span>Option 2</span></li>
    <li class=""><span>Option 3</span></li>
  </ul>
  <select class="initialized">
    <option value="" disabled="" selected="">Choose your option</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
  </select>
</div>

从我的代码中,我从检查中得到了这个:

<div class="select-wrapper">
  <span class="select-dropdown " data-activates="select-options-fdd5c3a3-b6d7-07f2-6626-df40620c20cc">Choose your option</span>
  <select class="validate initialized">
    <option value="" disabled="" selected="">Choose your option</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
  </select>
</div>

缺少 UL 元素呈现在所有 div 下方,这意味着在我的页脚上方.. 我哪里出错了?

小提琴:https://jsfiddle.net/007zkvut/

【问题讨论】:

  • 如果可能的话,分享你的代码的 Jsfiddle。
  • 查看我的编辑@SayedRafeeq
  • @-Vicky,谢谢。
  • 我也遇到了标签问题。问题是当它被初始化时它是不活动的。只需在完成渲染后将active 类添加到元素。应该可以正常工作。

标签: javascript jquery html css materialize


【解决方案1】:

我更新了你的 jsfiddle,因为它在 jQuery 之前加载 Materialize,所以没有定义 $()。

这是链接:

https://jsfiddle.net/007zkvut/7/

它工作正常,就像在他们的网站上一样。

但是,查看您在问题中发布的代码和您的 jsfiddle 中的代码,&lt;label&gt; 的位置有所不同

在我更新的 jsfiddle 中,我放了另一个选择来说明不同 &lt;label&gt; 展示位置之间的区别。只需确保它在&lt;select&gt;之后即可

【讨论】:

  • 没想到在 Materialize 之前加载 jQuery 很重要。 #soNooby
【解决方案2】:

我已经修复了选择下拉菜单的问题。

请查看演示。 https://jsfiddle.net/007zkvut/9/

您的演示: https://jsfiddle.net/007zkvut/8/

$(document).ready(function() {
 	$('select').material_select();
});
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/js/materialize.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css" rel="stylesheet"/>
<div class="container">  
  <div class="row">
    <div class="input-field s6">      
      <select class="browser-default waves-effect waves-light btn">
          <option value="" disabled="" selected="">Choose your option</option>
          <option value="1">Option 1</option>
          <option value="2">Option 2</option>
          <option value="3">Option 3</option>
       </select>
    </div>
  </div>
</div>

【讨论】:

  • 但我不想要browser-default 下拉@Sayed Rafeeq。我只想像问题中提到的那样下拉。请再次阅读问题
  • 检查这个@Sayed Rafeeq 我想要这样的东西link
  • @Vicky 如果您打算使用我的示例作为参考,不妨接受它作为答案。还是有什么我没有提到的?
  • @fjsuarez 我一直在寻找相同的内容,但正如问题中提到的那样,我的代码中缺少呈现的 标记...但是在您共享的 JSFiddle 中拥有它。这是我一开始的怀疑。但我明白了。我错过了一个
    这也是我的问题的另一个原因..
【解决方案3】:

我也遇到了这个问题,因为我的视图是从 javascript 代码自动生成的。我通过从 setTimeout 调用 select() 函数并在生成选择 DOM 的代码之后解决了这个问题。

setTimeout(function(){$('select').material_select();},1000);

同样的技巧也适用于具体化日期选择器。做吧。

setTimeout(function(){$('.datepicker').pickadate();},2000)

【讨论】:

    【解决方案4】:

    你可以使用下面的代码:

    <div class="input-field col s12 m6">
        <select class="initialized">
            <option value="" disabled="" selected="">Choose your option</option>
            <option value="1">Option 1</option>
            <option value="2">Option 2</option>
            <option value="3">Option 3</option>
        </select>
        <label>Materialize Select</label>
    </div>
    

    并且,在您的 javascript 文件中,您需要输入下一个代码:

    (function($){
      $(function(){
        $(document).ready(function() {
            $('select').material_select();
          });
      });
    })(jQuery);
    

    和ta chan!,它有效。

    【讨论】:

      【解决方案5】:

      将标签放在选择标签之后。它应该可以解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-31
        • 2016-11-27
        • 1970-01-01
        • 1970-01-01
        • 2017-04-07
        • 2013-10-06
        • 2016-01-24
        • 1970-01-01
        相关资源
        最近更新 更多