将值输入到不在选择列表中的jquery-select2中

Ara*_*and 9 javascript jquery jquery-select2

我有一个用例,我允许人们在select2插件的文本框中输入值,这些文本框没有出现在选择列表中.

在一种情况下,我提供验证,除非用户选择了有效的项目,否则不提交,但在他们这样做之前我不想清除它们的值.选择框可能包含1.00,1.50,1.75,NA,ABS,用户刚刚输入1.80.这是一个无效值,但我不想丢失它们的更改,我会将该框标记为无效并允许它们修复它们的更改.我不想在选择框中添加1.80,因为它是无效值,但我也不想清除它.

怎么可能实现这个目标?

Tho*_*s W 7

如果您在JS中进行验证,则Select2有一个动态加载/生成数据的示例,它会覆盖query()以重复用户的输入.

请参阅:http: //ivaynberg.github.io/select2/ '加载数据'

我用JQuery UI'自动完成'解决了类似的问题(服务器端).在这里,我采用了返回对象的方法,包括带有可能的解释性消息的标签,没有装饰的文本值,以及组合的ID值和状态标志.我覆盖select了将Text&ID存储到隐藏字段.

在我的情况下,我区分现有客户参考,或创建一个输入名称的新客户.我能够列出匹配现有客户的选项或创建"ABC新客户",非常好:

用户输入:"Alphabet Soup"并看到以下选项:

  • Alpha包装
  • 坎贝尔汤
  • 创造"字母汤"

类似的技术可能适用于您.希望这可以帮助.