JQuery,Select2 额外属性从未在事件中返回
JQuery, Select2 extra properties never returned in event
我正在使用 v4.0.3 在 select2 字段中工作,一切都很好,而不是当我想在做出选择时从数据结果中获取信息时,它应该用
完成
$(this).select2('data')[0]
但我总是只得到返回对象中的 id 和文本属性,我不知道是否有问题,但是页面使用了两个 select2 字段,但只有这个使用 ajax,关于结果我真的在服务器返回的结果项中多了一个属性,结果是这样的
[{"path":"/upload/images/filename","id":"11","text":"some text here"}, {"path":"/upload/images/another 文件名","id":"23","text":"still some text there"},{"path":"/upload/images/once 文件名","id" :"38","text":"some text to show"}]
我尝试了很多在 google 上找到的例子,但没有任何反应,现在我不知道了,请看我的 select2 代码
$("#article_image").select2({
placeholder: "Make your search...",
allowClear: true,
minimumInputLength: 2,
ajax: {
url: "url/to/search",
dataType: "json",
delay: 1250,
data: function (e) {
return {
s: e.term,
p: e.page
};
},
processResults: function (data, p) {
p.page = p.page || 1;
return {
results: data,
}
},
cache: true
},
templateResult: format,
escapeMarkup: function (m) { return m; }
}).on('select2:select', function (evt) {
console.log($(this).select2('data')[0]);
});
现在无需更改任何代码行即可工作,似乎缓存选项是个问题(不太确定,因为我不太了解 js)因为我在同一个 windows 工作了几个几天和今天下午我失去了 chrome 会话所以我刚刚关闭了电脑,现在我只是打开我的浏览器看看我是否得到了我的问题的答案并尝试一些新的方法来处理和就像神奇的一切都很棒。
感谢 Suresh Maurya 尝试帮助我并希望这个帖子对某人有所帮助
我正在使用 v4.0.3 在 select2 字段中工作,一切都很好,而不是当我想在做出选择时从数据结果中获取信息时,它应该用
完成$(this).select2('data')[0]
但我总是只得到返回对象中的 id 和文本属性,我不知道是否有问题,但是页面使用了两个 select2 字段,但只有这个使用 ajax,关于结果我真的在服务器返回的结果项中多了一个属性,结果是这样的 [{"path":"/upload/images/filename","id":"11","text":"some text here"}, {"path":"/upload/images/another 文件名","id":"23","text":"still some text there"},{"path":"/upload/images/once 文件名","id" :"38","text":"some text to show"}]
我尝试了很多在 google 上找到的例子,但没有任何反应,现在我不知道了,请看我的 select2 代码
$("#article_image").select2({
placeholder: "Make your search...",
allowClear: true,
minimumInputLength: 2,
ajax: {
url: "url/to/search",
dataType: "json",
delay: 1250,
data: function (e) {
return {
s: e.term,
p: e.page
};
},
processResults: function (data, p) {
p.page = p.page || 1;
return {
results: data,
}
},
cache: true
},
templateResult: format,
escapeMarkup: function (m) { return m; }
}).on('select2:select', function (evt) {
console.log($(this).select2('data')[0]);
});
现在无需更改任何代码行即可工作,似乎缓存选项是个问题(不太确定,因为我不太了解 js)因为我在同一个 windows 工作了几个几天和今天下午我失去了 chrome 会话所以我刚刚关闭了电脑,现在我只是打开我的浏览器看看我是否得到了我的问题的答案并尝试一些新的方法来处理和就像神奇的一切都很棒。 感谢 Suresh Maurya 尝试帮助我并希望这个帖子对某人有所帮助