jquery - 通过搜索选择 Material 设计

标签 jquery select material-design materialize

我正在寻找某种带有搜索输入的选择。我用 MaterializeCSS 构建了我的页面,但是这个库不支持这种类型的选择。这是我需要的最好的例子 - https://material.angularjs.org/latest/demo/select#select-header 。有人可以帮助我吗?

最佳答案

您可以使用 Select2 添加搜索功能如 this 中所述GitHub 问题。您需要做的就是:

  1. 将 Select2 样式表和 javascript 文件(包括 jQuery)添加到您的页面。
  2. 添加额外的 CSS 以使 Select2 看起来更像 MaterializeCSS。
  3. 运行 JavaScript 代码以初始化 select 元素上的 Select2。

$('select').select2({width: "100%"});
.select2 .selection .select2-selection--single, .select2-container--default .select2-search--dropdown .select2-search__field {
    border-width: 0 0 1px 0 !important;
    border-radius: 0 !important;
    height: 2.05rem;
}

.select2-container--default .select2-selection--multiple, .select2-container--default.select2-container--focus .select2-selection--multiple {
    border-width: 0 0 1px 0 !important;
    border-radius: 0 !important;
}

.select2-results__option {
    color: #26a69a;
    padding: 8px 16px;
    font-size: 16px;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #eee !important;
    color: #26a69a !important;
}

.select2-container--default .select2-results__option[aria-selected=true] {
    background-color: #e1e1e1 !important;
}

.select2-dropdown {
    border: none !important;
    box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);
}

.select2-container--default .select2-results__option[role=group] .select2-results__group {
    background-color: #333333;
    color: #fff;
}

.select2-container .select2-search--inline .select2-search__field {
    margin-top: 0 !important;
}

.select2-container .select2-search--inline .select2-search__field:focus {
    border-bottom: none !important;
    box-shadow: none !important;
}

.select2-container .select2-selection--multiple {
    min-height: 2.05rem !important;
}

.select2-container--default.select2-container--disabled .select2-selection--single {
    background-color: #ddd !important;
    color: rgba(0,0,0,0.26);
    border-bottom: 1px dotted rgba(0,0,0,0.26);
}

input[type=text],
input[type=password],
input[type=email],
input[type=url],
input[type=time],
input[type=date],
input[type=datetime-local],
input[type=tel],
input[type=number],
input[type=search],
textarea.materialize-textarea {
  &.valid + label::after,
  &.invalid + label::after,
  &:focus.valid + label::after,
  &:focus.invalid + label::after {
    white-space: pre;
  }
  &.empty {
    &:not(:focus).valid + label::after,
    &:not(:focus).invalid + label::after {
      top: 2.8rem;

    } 
  }
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-alpha.4/css/materialize.min.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-alpha.4/js/materialize.min.js"></script>

<div class="input-field col s12">
  <select>
    <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>

关于jquery - 通过搜索选择 Material 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48871867/

相关文章:

jquery - 使用 jQuery 从 DIV 类动态创建 LI 项

HTML 多选限制

vba - Excel VBA 代码在一个工作簿中选择包含特定文本字符串的单元格,然后将这些单元格复制并粘贴到新工作簿中

android - EditText 子类的 Material 设计

android - 如何计算Android中的日期范围 Material 选择器之间的天数

javascript - 如何对 Rails 中的不同图表使用切换?

javascript - 加载事件选项卡页面源的 Chrome 扩展程序

html - 适合父 div 以选择标签宽度

android - 当我使用设计支持库时 ClassNotFoundException

c# - 根据链接点击隐藏jquery中的gridview