【问题标题】:Add icon in selectize在选择中添加图标
【发布时间】:2021-11-01 04:53:23
【问题描述】:

我想要最左边的搜索图标,如下图所示。 fontawesome 的搜索图标是 <i class="fas fa-search"></i> 或者我们可以使用 bootstrap 的 Glyphicons。

内容:“\e003”; font-family: "字形半身人";

启用多选时我找不到添加图标的方法。

HTML

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.3/css/selectize.bootstrap3.min.css" rel="stylesheet"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.3/js/standalone/selectize.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/js/all.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"/>

    
    <select multiple class="form-control select-key" id="sel2" name="key-list[]">
      <option>SBI Cap</option>
      <option>PGIM MidCap</option>
      <option>Axis SmallCap</option>
      <option>Kotak Technology</option>
      <option>SBI Technology</option>
    </select>

JS

$(function () {
   $("#sel2").selectize({
    onDropdownOpen: function($dropdown) {
        if (!this.lastQuery.length) {
        this.close(); 
        this.settings.openOnFocus = false;
      }
   },   
   onItemAdd: function() {
    this.close();
   },
   onType : function (str) {
        if (str === "") {
            this.close();
        }
   }
  });
});

【问题讨论】:

    标签: javascript jquery selectize.js


    【解决方案1】:

    您可以在beforecss psudo 类中添加图标。

    $(function() {
        $("#sel2").selectize({
            onDropdownOpen: function($dropdown) {
                if (!this.lastQuery.length) {
                    this.close();
                    this.settings.openOnFocus = false;
                }
            },
            onItemAdd: function() {
                this.close();
            },
            onType: function(str) {
                if (str === "") {
                    this.close();
                }
            }
        });
    });
       
     .selectize-input.items.not-full.has-options:before {
     content:"\f002";
     font-family: "Font Awesome 5 Free";
     line-height: 2;
     display: block;
     position: absolute;
     top: 0;
     left: 0;
     padding: 0 4px;
     font-weight:900;
     }
      .selectize-input.items.not-full.has-options {
     padding-left: 24px;
     }
     
       .selectize-input.items.not-full.has-options .item:first-child {
     margin-left: 20px;
     }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.3/css/selectize.bootstrap3.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.13.3/js/standalone/selectize.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/js/all.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet" />
    
    <br>
    <select multiple class="form-control select-key" id="sel2" name="key-list[]">
        <option>SBI Cap</option>
        <option>PGIM MidCap</option>
        <option>Axis SmallCap</option>
        <option>Kotak Technology</option>
        <option>SBI Technology</option>
    </select>

    【讨论】:

    • 谢谢。当用户输入值时,搜索图标出现在左侧。我们可以冷冻它吗?或者如果我们可以在最左边而不是最右边有静态图标(很抱歉在最初询问后改变了位置)
    • @UjjawalBhandari 我更新了代码。再试一次。
    猜你喜欢
    • 1970-01-01
    • 2021-10-17
    • 2021-06-30
    • 2017-10-22
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多