当initselection数据包含“

时间:2015-06-22 10:25:12

标签: javascript jquery ajax json jquery-select2

我有一个select2 ajax字段,其中远程数据包含转义引号。

我按如下方式使用它:

<input id="facilitiesInput" value='<%=_.pluck(facilities, "id")>' data-value='<%= JSON.stringify(facilities) %>' />

问题是其中一个设施值包含(转义)引号。但是因为我将整个对象进行字符串化然后再解析,所有引号都被解释为分隔符。

和javascript代码

$('#facilitiesInput').select2({
    ajax: {... },
    results: function (data) {
       return {results: data};
    },
},
initSelection: function (element, callback) {

  callback(JSON.parse(element.attr("data-value")));  //this is where the magic doesnt happen. parse fails because of the quotes
},
formatResult: function (facility) {
  return '<span class="facility">' + facility.name + '</span>';
},
formatSelection: function (facility) {
  return '<span class="facility">' + facility.name + '</span>';
}
});

html输出是

<input  id="facilitiesInput" value='8146' data-value='[{&quot;name&quot;:&quot;Facility Name&quot;,
&quot;description&quot;:&quot;&lt;p&gt;Our Motto is &quot;Carpe diem&quot;\r\n&lt;/p&gt;}]' />

Select2将所有“作为JSON分隔符解释,它会破坏它。

非常感谢任何帮助。

0 个答案:

没有答案