清除Select2中的选定选项

时间:2015-12-02 11:24:14

标签: javascript jquery jquery-select2 jquery-select2-4


我的Select2选项出现了新问题。我无法清除我的选择框。 和JSFiddle一样,我选择'对于我的数据。问题在于我无法移除最后一个元素,或清除我的Web门户中的整个字段,但在JSFiddle中,一切看起来都不错。我的门户网站给了我错误"类型错误:a为空"我不知道为什么。

这是我的代码:

$.getJSON(url, function (data){
    $("#mySelect").select2({
        data:data,
        placeholder: "Select options",
        templateSelection: function(val) {
            return val.text;
        }
    });
});

我的选择:

<select id="mySelect"></select>

当我使用其他解决方案时问题消失但我无法调用&#39; templateSelection&#39;的相关数据。在这个解决方案中,我为我的选择创建了选项,并且简单地使用了select2,但正如您可以看到的那样,字段&#39; data.version&#39;我有答案&#34; undefined&#34;

代码:

var data=[
  {id:1, text: "sample_1", version: "1"},
  {id:2, text: "sample_2", version: "2"}];

$.each(data, function(i,x){
    $('#mySelect').append($('<option>', {
    value: x.id,
    text: x.text
    }));
});

$("#mySelect").select2({
    templateResult: function(data) {
    return data.text + ' ' + data.version;
  }
});

JSFIDDLE

为什么这个解决方案在jsfiddle中有效,但在我的门户网站中没有?

1 个答案:

答案 0 :(得分:0)

var data=[{id:1, text: "sample_1", version: "1"},{id:2, text: "sample_2", version: "2"}]

$.each(data, function(i,x){
   $('#mySelect').append($('<option>', {
                value: x.id,
                text: x.text+" "+x.version,
                
            }));
});
$("#mySelect").select2({
  templateResult: function(data) {
    return data.text;
  }
});

当$ function用于创建元素时,它只能接受该元素的html属性