我有一个AJAX调用,其提取由一个PHP json_encode方法创建的值的JSON表示:jQuery的自动完成特殊字符
["Montérégie","Montréal - North Shore ","Montréal - South Shore"]
的值正在从“控制器/ ajax_autocomplete”由一个jquery收获自动填充框。
$(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实体解码替换特殊字符
看看是否有帮助http://stackoverflow.com/a/34415506/4802649 – Phiter