我有一个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='[{"name":"Facility Name",
"description":"<p>Our Motto is "Carpe diem"\r\n</p>}]' />
Select2将所有“作为JSON分隔符解释,它会破坏它。
非常感谢任何帮助。