我正在寻找某种带有搜索输入的选择。我用 MaterializeCSS 构建了我的页面,但是这个库不支持这种类型的选择。这是我需要的最好的例子 - https://material.angularjs.org/latest/demo/select#select-header 。有人可以帮助我吗?
最佳答案
您可以使用 Select2 添加搜索功能如 this 中所述GitHub 问题。您需要做的就是:
- 将 Select2 样式表和 javascript 文件(包括 jQuery)添加到您的页面。
- 添加额外的 CSS 以使 Select2 看起来更像 MaterializeCSS。
- 运行 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/