【发布时间】:2015-11-25 06:36:39
【问题描述】:
我正在使用 Select2 4.0,因为代码更新破坏了一些现有代码:
数据通过如下结构的 AJAX 数组加载
['id':1,'text':'hello-world','artefact_type'=>'CONTACT'], ['id':2,'text':'test','artefact_type'=>'ORGANISATION'],
插件配置如下:
...
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? 我还不确定是否真的创建了数据属性。
请帮忙! 谢谢
【问题讨论】: