我正在尝试使用JQuery的自动完成功能,如下所示:
<form name="form_data" action="#" method="post">
<label for="plp_who">Pick Name:</label>
<input type="text" name="plp_who" id="plp_who" class="form-control compact" value="">
</form>
$('##plp_who').autocomplete({source: "/autocomplete/legacy_contact.cfm",minLength: 2});
"legacy_contact.cfm"
搜索数据库并返回JSON
格式的结果列表。当该列表包含单引号或符号时,即使我转义该字符,控件也无法响应。通过&#34;失败&#34;我的意思是控件没有给出任何返回结果的指示,但没有抛出Javascript错误。
例如:
[ {"label" : "Bob Michelucci, Rossi\'s Pop Up Marketplace", "value" : "9338"} ]
失败
[ {"label" : "Bob Michelucci, Rossis Pop Up Marketplace", "value" : "9338"} ]
成功
[ {"label" : "Brian Wright, R\&B Contracting \& Excavation", "value" : "8694"} ]
失败
[ {"label" : "Brian Wright, R and B Contracting and Excavation", "value" : "8694"} ]
成功
有人可以建议可能出现的问题吗?我无法相信没有办法对这些角色进行编码,这样他们就不会破坏控制,而是试图使用&amp; amp;或者&#39;当然,它不会起作用,因为它包含一个&符号。
答案 0 :(得分:0)
我尝试使用“失败”数据复制问题。似乎工作:
var myData = [{
"label": "Bob Michelucci, Rossi\'s Pop Up Marketplace",
"value": "9338"
}, {
"label": "Brian Wright, R\&B Contracting \& Excavation",
"value": "8694"
}];
$(function() {
$('#plp_who').autocomplete({
source: myData,
minLength: 2
});
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<form name="form_data" action="#" method="post">
<label for="plp_who">Pick Name:</label>
<input type="text" name="plp_who" id="plp_who" class="form-control compact" value="">
</form>
考虑到您从CFM中提取数据,您可以考虑通过控制台或网络工具查看CFM的实际响应。您也可以手动测试。使用“bo”:
等测试导航到您的页面/autocomplete/legacy_contact.cfm?term=bo
您应该收到一系列对象结果。