添加空项不会创建值属性

时间:2018-06-14 10:33:16

标签: javascript jquery-select2

我在select2元素中添加了一个项目数组,第一个项目为空 我需要第一个元素确实具有“value”属性,但它没有。

这是我添加到元素的项目数组:

<meta http-equiv="Content-Security-Policy" content="img-src * 'self' data:; default-src * gap:; style-src 'self' 'unsafe-inline'; script-src 'self'  'unsafe-inline' 'unsafe-eval'; ">

我使用此代码添加元素:

items = [
    { id: "", text: "Choose element" },
    { id: 1, text: 1st element" },
    { id: 2, text: 2nd element" },
    { id: 3, text: 3rd element" }
]

这会创建此html选择:

$element.html('').select2({
    data: items
});

正如您所看到的,第一个元素没有“value”属性,但我需要这样:

<select>
    <option>Choose element</option>
    <option value="1">1st element</option>
    <option value="2">2nd element</option>
    <option value="3">3rd element</option>
</select>

更新

这似乎是一个select2错误,在此更正:

https://github.com/select2/select2/commit/16b4840c0e2df0461998e3b464ee0a546173950d

1 个答案:

答案 0 :(得分:0)

试试这个:

 $element.html('').select2({
  placeholderOption: function() {
    return undefined; //This is the key
  },
  data: items
});

演示:https://jsfiddle.net/lotusgodkk/rLmztr2d/1668/

参考:https://github.com/select2/select2/issues/2142#issuecomment-35820185