【发布时间】:2017-02-08 10:25:12
【问题描述】:
我有一个 ajax 调用,它正在获取由 php json_encode 方法创建的值的 JSON 表示:
["Montérégie","Montréal - North Shore ","Montréal - South Shore"]
这些值是由 jquery 自动完成框从“控制器/ajax_autocomplete”中获取的。
$(function(){ $("#regions").autocomplete({
source: "controller/ajax_autocomplete",
contentType: "application/json; charset=utf-8"
}
});
});
所有值都被 jQuery UI 的 ui-autocomplete 正确拾取,但特殊字符丢失了。
Montréal become Montréal, Montérégie become Montérégie ...
在 http 传输过程中,特殊字符肯定会被破坏,因为如果我手动将 JSON 表复制到 jquery 函数,问题就会消失。
$(function(){ $("#regions").autocomplete({
contentType: "application/json; charset=utf-8",
source: "["Montérégie","Montréal - North Shore ","Montréal - South Shore"]"
}
});
});
以编程方式解码 html 实体适用于文本框值,但建议列表仍将特殊字符替换为 HTML 实体
$(function(){ $("#regions").autocomplete({
source: "controller/ajax_autocomplete",
select: function( event, ui ) {
event.preventDefault();
this.value = $('<div />').html(ui.item.value).text();
}
});
});
解决方案是解码建议列表中的 HTML 实体
【问题讨论】:
标签: javascript php jquery json ajax