我使用Select2 4.0,因为代码更新打破了一些现有代码:
数据通过结构如下的AJAX数组加载
[' ID':1,'文本':'你好世界'' artefact_type' =>' CONTACT&#39], [' ID':2'文本':'测试'' artefact_type' =>'组织'] ,
该插件配置如下:
...
ajax: [
'url' => $url,
'dataType': 'json',
'data' :'function(params) { return {q:params.term}; }',
'processResults':'function(out) {console.log(out.results); return {results:out.results}; }',
],
templateResult: 'function(data) {
return data.text+" - "+data.artefact_type;
}'
...
AJAX正确加载,因为模板结果显示文本和artefact_type。
现在我尝试实现更改功能
function (e) {
element = $("#quick-search");
alert(element.val()+'++'+ e.val());
artefact_type = ??;
if (data != "") {
var url = "";
if (artefact_type == "CONTACT") {
url = "/xrm/contact/detail?id=" + element.val();
}
if (artefact_type == "ORGANIZATION") {
url = "/xrm/organization/detail?id=" + element.val();
}
if (artefact_type == "COMMITTEE") {
url = "/xrm/committee/detail?id=" + element.val();
}
$(location).attr('href', url);
}
else
{
$("#test").html("Please select a sector operator...");
}
}
以前我可以做element.selected.artefact_type来实现这个目的。 如何获取与所选值对应的artefact_type? 我还不确定是否实际创建了数据属性。
请帮忙! 谢谢
答案 0 :(得分:0)