Я в тупике. У меня есть функция автозаполнения, которая работала при вызове из автозаполнения ColdFusion. Теперь я пытаюсь преобразовать страницу, чтобы использовать ввод автозаполнения jQuery, и не могу заставить ее работать. Вот существующая функция в autosuggest.cfc:
<cffunction name="lookupSerialNumber" access="remote" returntype="Array" >
<cfargument name="search" type="any" required="false" default="">
<!--- Define variables --->
<cfset var data="">
<cfset var result=ArrayNew(1)>
<!--- Do search --->
<cfquery name="data">
SELECT DISTINCT SERIAL_NUMBER
FROM myTable
WHERE SERIAL_NUMBER LIKE '%#trim(ARGUMENTS.search)#%'
ORDER BY SERIAL_NUMBER
</cfquery>
<!--- Build result array --->
<cfloop query="data">
<cfset ArrayAppend(result, list)>
</cfloop>
<!--- And return it --->
<cfreturn result />
</cffunction>
Когда я вызываю его с моего автозаполнения после ввода "01", Консоль показывает ответ, подобный этому:
["0000003001","0100002000","0100002001","0100002002","0100002003","0100002004",7300000100,7300000101,7300000102,7300000103,7300000104,7300000105,7300000107,7300000108,7300000109,7300000110,7300000111,7300000112]
Обратите внимание, что первые шесть ответов заключены в двойные кавычки, а остальные нет. Автозаполнение показывает первые шесть ответов, но не остальные.
Так что это моя первая проблема. Во-вторых, я хочу, чтобы ответ был вставлен как в текст, так и в значение ввода; в настоящее время только текст показывает ответ. Я не удивлен, так как я возвращаю только одно значение. Однако я не могу понять, как этого добиться.
Я попытался инициализировать автозаполнение с помощью функции разбора, например так:
$(document).ready(function(){
$('#myInputID').autocomplete(
{source: function(request, response) {
$.ajax({
url: "cfc/autoSuggest.cfc?method=lookupSerialNumber>&returnformat=json",
dataType: "json",
data: {
search: request.term,
maxRows: 10
},
success: function(data) {
response(data);
}
})
},
parse: function(data){
return $.map(data, function(item) {
return { data: item, value: item, result: item };
});
}
});
});
но это ничего не дает. Так как функция синтаксического анализа отсутствует в API автозаполнения, я слетаю вслепую.
Я подумал, что эти проблемы были достаточно связаны, чтобы не разделить их на два вопроса; дайте мне знать, если вы думаете, что я должен. Как всегда, спасибо.