不能 select json-结果 select2
can't select json-results on select2
有这样的 JS:
$(".select2-input").select2({
placeholder: placeholder,
id: function(data){return data.id},
ajax: {
url: "/autocomplete",
datatype: 'json',
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
results: function (data) {
return {
results: data.results
};
},
cache: true,
id: function(connection){
console.log(connection);
}
}
});
“/autocomplete”的结果 URL 如下所示:
{"results":[{"id":14953,"text":"Dohn Doe"},{"id":15467,"text":"Jane Dohe"}]}
所有这些我都可以看到自动完成的结果,但点击任何结果都不会导致任何变化!
所以我一直在尝试实现 this question 的答案,但没有成功。可能我只是 missed/messed 东西。
还有这一行
console.log(connection);
不向控制台写入任何内容。
Select2 版本为 4.0
好的,看来我找到问题了。首先需要说明的是,4.0 版本的 select2 不支持我上面提到的 id
选项。这是 documentation 的摘录以证明这一点:
Select2 no longer supports a custom id or text to be used, but provides integration points for converting incorrect data to the expected format.
所以问题不在我提供的代码中(dataType
类型除外,感谢 Dave Newton!),但在我没有提供的代码中。所以我有
input :person, as: :text, input_html: { class: "select2-input", "data-placeholder" => person }
– 注意 as: :text
部分
一旦我将其更改为
input :person, as: :select, input_html: { class: "select2-input", "data-placeholder" => person }
一切都很顺利!仍然不知道是什么驱使我输入文本而不是 select。
有这样的 JS:
$(".select2-input").select2({
placeholder: placeholder,
id: function(data){return data.id},
ajax: {
url: "/autocomplete",
datatype: 'json',
data: function (params) {
return {
q: params.term, // search term
page: params.page
};
},
results: function (data) {
return {
results: data.results
};
},
cache: true,
id: function(connection){
console.log(connection);
}
}
});
“/autocomplete”的结果 URL 如下所示:
{"results":[{"id":14953,"text":"Dohn Doe"},{"id":15467,"text":"Jane Dohe"}]}
所有这些我都可以看到自动完成的结果,但点击任何结果都不会导致任何变化!
所以我一直在尝试实现 this question 的答案,但没有成功。可能我只是 missed/messed 东西。
还有这一行
console.log(connection);
不向控制台写入任何内容。
Select2 版本为 4.0
好的,看来我找到问题了。首先需要说明的是,4.0 版本的 select2 不支持我上面提到的 id
选项。这是 documentation 的摘录以证明这一点:
Select2 no longer supports a custom id or text to be used, but provides integration points for converting incorrect data to the expected format.
所以问题不在我提供的代码中(dataType
类型除外,感谢 Dave Newton!),但在我没有提供的代码中。所以我有
input :person, as: :text, input_html: { class: "select2-input", "data-placeholder" => person }
– 注意 as: :text
部分
一旦我将其更改为
input :person, as: :select, input_html: { class: "select2-input", "data-placeholder" => person }
一切都很顺利!仍然不知道是什么驱使我输入文本而不是 select。