【问题标题】:Add an empty option in select2 when options are created from jQuery从 jQuery 创建选项时,在 select2 中添加一个空选项
【发布时间】:2022-01-16 20:29:32
【问题描述】:

当我从jQuery 设置选项时,我尝试添加一个空的<option></option>,但在加载页面时选择了第一个选项。我添加了allowClear: true, placeholder: "Select...",,但没有成功。

我找到了一个四处走走,在我初始化select2 后清除该选项,这可行但有更好的解决方案吗?

$(".select2-it").val(null).trigger('change');

var itData = [{
    id: 0,
    text: 'Apps',
    children: [{
        id: '1',
        text: 'App1'
      },
      {
        id: '2',
        text: 'App2'
      },
      {
        id: '3',
        text: 'App3'
      }
    ]
  },
  {
    id: 4,
    text: 'bug'
  },
  {
    id: 5,
    text: 'duplicate'
  }
];

$(".select2-it").select2({
  allowClear: true,
  placeholder: "Select...",
  data: itData,
  width: "100%"
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />

<select id="it-target" class="select2-it form-control"></select>

【问题讨论】:

  • 为什么要添加一个空选项?
  • 该选项在我的表单中是必需的,我希望用户选择一个值而不是第一个选项。

标签: jquery jquery-select2


【解决方案1】:

您可以在对输入调用 Select2 初始化程序之前在 DOM 元素中添加空选项(使用 .prepend())。

var itData = [{
    id: 0,
    text: 'Apps',
    children: [
        { id: '1', text: 'App1' },
        { id: '2', text: 'App2' },
        { id: '3', text: 'App3' }
    ]
}, {
    id: 4,
    text: 'bug'
}, {
    id: 5,
    text: 'duplicate'
}];

$(".select2-it").prepend('<option></option>').select2({
    allowClear: true,
    placeholder: "Select...",
    data: itData,
    width: "100%"
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<select id="it-target" class="select2-it form-control"></select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-09
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多