jquery – 我需要在Select2中添加“添加新项”选项

前端之家收集整理的这篇文章主要介绍了jquery – 我需要在Select2中添加“添加新项”选项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在列表的第一个元素中添加一个按钮“添加新项目”.如果用户点击该按钮,我需要打开一个弹出窗口并获取用户的输入.
如何在select2插件中执行此操作?此(或)的任何默认选项是否需要自定义此选项?

解决方法

基本上是Kld建议的,但没有额外的按钮,因为我知道OP想要使用select的第一个选项来触发新的值模态.它会在触发select2:close事件时检查值,如果选择“NEW”,则提示输入新值,在选择框的末尾添加并选择它.

注意:我已禁用搜索输入并添加占位符

$(function () {
  $(".select2")
  .select2({
    placeholder: 'Select type',width: '50%',minimumResultsForSearch: Infinity
  })
  .on('select2:close',function() {
    var el = $(this);
    if(el.val()==="NEW") {
      var newval = prompt("Enter new value: ");
      if(newval !== null) {
        el.append('<option>'+newval+'</option>')
          .val(newval);
      }
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<select id="mySel" class="select2">
  <option></option>
  <option value="NEW">Add new type</option>
  <option>Car</option>
  <option>BUS</option>
  <option>TWO</option>
  <option>THREE</option>
</select>

猜你在找的jQuery相关文章