【发布时间】:2014-10-13 06:18:06
【问题描述】:
我有一个 Select2 自动完成输入(通过 SonataAdmin 构建),但我终其一生都无法弄清楚如何以编程方式将其设置为已知的键/值对。
a JS Fiddle here 大致显示了我所拥有的。我想知道的是我可以将什么功能附加到按钮上,以便
- Select2 字段向用户显示文本“NEW VALUE”,并且
- 当表单发送到服务器时,Select2 字段将提交值“1”
我已经尝试了 jQuery 和 Select2 data 和 val 方法的各种组合,针对页面上的各种输入调用,但似乎没有任何效果......肯定有什么方法可以做到这一点?
-- 编辑--
下面接受的答案非常有用,有助于阐明初始化选择的正确方法并解释 initSelection 的用途。
话虽如此,看来我最大的错误是我试图触发更改的方式。
我正在使用:
$(element).select2('data', newObject).trigger('change');
但这会导致 select2 的更改事件中出现一个空的 add 对象。
如果您改为使用:
$(element).select2('data', newObject, true);
然后代码可以正常工作,newObject 在 select2 的更改事件中可用,并且值设置正确。
我希望这些额外的信息对其他人有所帮助!
【问题讨论】:
标签: javascript jquery jquery-select2 sonata-admin