通过编程设置Select2 ajax的值

15 浏览
0 Comments

通过编程设置Select2 ajax的值

我有一个Select2自动完成输入框(通过SonataAdmin构建),但是我无论如何都无法弄清楚如何以编程方式将其设置为已知的键/值对。

这里有一个JSFiddle链接,大致展示了我所拥有的东西。我想知道的是,我可以将什么函数附加到按钮上,以便:

  • Select2字段向用户显示文本“NEW VALUE”,并且
  • 当表单提交到服务器时,Select2字段将提交一个值为“1”

我尝试过各种组合的jQuery和Select2的data和val方法,调用了页面上的各种输入,但是似乎没有什么有效的方法...肯定有办法做到这一点吧?

-- 编辑 --

下面的接受答案非常有用,有助于阐明正确初始化选择的方法,并解释了initSelection的用途。

话虽如此,我在这里犯了最大的错误是我尝试触发更改的方式。

我使用的是:

$(element).select2('data', newObject).trigger('change');

但是这会导致select2的change事件中出现一个空的add对象。

相反,如果您使用:

$(element).select2('data', newObject, true);

那么代码将按预期工作,select2的change事件中将有newObject可用,并且值将被正确设置。

我希望这些额外的信息能帮助其他人!

0