select2 - 如何允许空值

Posted

技术标签:

【中文标题】select2 - 如何允许空值【英文标题】:select2 - how to allow a null value 【发布时间】:2017-12-06 23:49:23 【问题描述】:

在一个表单中有多个 select2 元素。 在一个特定的 select2 元素中,我设置了一些带有非空字符串“文本”和空“值”的选项。 提交表单的行为似乎是这样的:

如果 'value' 不为 null -> 'value' 是在 'submit' 操作中提交的项目 如果 'value' 为 null -> 'text' 是在 'submit' 操作中提交的项目

这不是我正在寻找的行为。 当“value”为空时,如何提交“value”?我只想提交null!我在 select2 文档中找不到类似的内容。

【问题讨论】:

您使用的是哪个版本的 Select2?正如我所看到的那样,该功能可能在 4.0 版本中发生了变化。 【参考方案1】:

要指定一个空值,请将 Select2 值设置为空,然后会出现占位符。

$('select').select2(
    placeholder: 'Your NULL value caption',
    allowClear: true   // Shows an X to allow the user to clear the value.
);

有一些方法(通过自定义数据适配器或以前的版本)来创建用户可以选择的空值条目。我知道,因为这是我以前做过的,但现在已经改变了。

Select2 4.0.3:参见:https://select2.org/selections

=====================

重要编辑:从版本 4.0.4(昨天)开始,有一个修复程序允许选择具有空白或 0 选项值的选项。 见:https://github.com/select2/select2/releases/tag/4.0.4

要启用此功能,您需要添加 NULL 值并删除“占位符”和“allowClear”选项。

如果您不删除“占位符”选项,它将隐藏您的“NULL”条目。

如果您离开“allowClear”,然后单击“X”将导致错误。

【讨论】:

【参考方案2】:

可以通过 html 元素属性来完成(对于 select2)

<select ... data-allow-clear=true >

【讨论】:

【参考方案3】:

我遇到了同样的问题,我使用的是静态文件,但使用 cdn 解决了这个问题

js cdn:

<script src%3D"https//cdnjs.cloudflare.com/ajax/libs/select2/4.1.0-beta.1/js/select2.min.js"></script>

css cdn

<link href%3D"https//cdnjs.cloudflare.com/ajax/libs/select2/4.1.0-beta.1/css/select2.min.css" rel="stylesheet" />

请在您的 css 和 js 中包含这些链接,然后使用

<script>
$(".your_class").select2(
placeholder: 'Your caption',
allowClear: true
)</script>

这样就可以了

【讨论】:

以上是关于select2 - 如何允许空值的主要内容,如果未能解决你的问题,请参考以下文章

Select2:如何允许用户从默认列表中选择但接受新字符串?

Select2 多个 - 如何设置空白默认值

Yii Booster Select2 - 允许新值 [关闭]

Select2:初始化后如何设置数据?

Select2 不允许我滚动查看其余选项

当用户键入时,Select2 下拉列表允许用户输入新值