选择2:从所选值获取ajax数据属性

时间:2015-11-25 06:36:39

标签: jquery ajax

我使用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? 我还不确定是否实际创建了数据属性。

请帮忙! 谢谢

1 个答案:

答案 0 :(得分:0)

使用$(“#quick-search”)解决它.select2('data')[0];

第二天问了同样的问题:

Adding "data-" attributes with select2