有很多关于select2倍增值的问题,其中很多都没有接受答案。
从表面上看,一切看起来都不错,但是当我删除一个令牌时,它仍然以params发送它。
检查input
(select2
隐藏的)
在初始化select2
之前
$('#language_list').val() //=> "english spanish italian"
初始化后
$('#language_list').val() //=> "english spanish italian,english,spanish,italian"
// It's clearer what's going on like this.
// And I don't know if it's significant but tokenSeparators: [",", " "]
$("#user_language_list").select2("val") //=> ["english spanish italian", "english", "spanish", "italian"]
很多问题都出现了,就像我在错误发生后重新填充表格一样
$('#language_list').val() //=> "english-spanish-italian english spanish italian,english,spanish,italian"
隐藏在input
中我必须在后端处理。
答案 0 :(得分:1)
在将数据发送到callback
您可能会认识到这基本上是文档中的代码。
initSelection: function (e, callback) {
var tags = e.val().split(/, |,| /);
for (var i = 0; i < tags.length; i++) {
var tag = tags[i].trim();
tags[i] = {id: tag, text: tag};
}
callback(tags);
}
但你只需要清理val
initSelection: function (e, callback) {
var tags = e.val().split(/, |,| /);
e.val("")
for (var i = 0; i < tags.length; i++) {
var tag = tags[i].trim();
tags[i] = {id: tag, text: tag};
}
callback(tags);
}