jQueryUI 自动完成 - 无法显示返回的选择 (Coldfusion)



这让我发疯了。我正在使用 jQueryUI 自动完成来拉回客户名称和客户 ID 对。用户应该能够开始键入客户名称并获取建议列表,从列表中选择,选择后应将客户 ID 分配给隐藏字段。自动完成功能在分配所选值之前工作正常。用户可以开始键入并获取建议列表并选择一个。此时,文本字段中的值将更改为客户 ID 而不是客户名称,简而言之,这就是问题所在。

j查询代码:

$( "#enaCustomer" ).autocomplete({
source: "customerLookup.cfc?method=lookupCustomer&returnformat=json",
minLength: 2,
select: function(event, ui) {
console.log(ui);
console.log(ui.item.label);
$('#enaCustomer').val(ui.item.label);
$('#enaCusID').val(ui.item.value);
}
});

氟氯化碳:

<cffunction name="lookupCustomer" access="remote" output="no" returnformat="JSON">
<cfargument name="term" required="true" default="" />
<!--- Define variables --->
<cfset var returnArray = ArrayNew(1)>
<!--- Do search --->
<cfquery name="rsCustomers" datasource="myDB">
SELECT      cusID, cusCustomer
FROM        tblCustomers
WHERE       cusCustomer LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="%#term#%" />
ORDER BY    cusCustomer
</cfquery>
<!--- Build result array --->
<cfloop query="rsCustomers">
<cfset customerStruct = structNew() />
<cfset customerStruct['value'] = cusID />
<cfset customerStruct['label'] = cusCustomer />
<cfset arrayAppend(returnArray, customerStruct) />    
</cfloop>
<!--- And return it --->
<cfreturn returnArray />
</cffunction>

例如,console.log(ui)显示了以下内容:

项目:对象 { 标签:"客户 4",值:4 }

console.log(ui.item.label)

"Customer 4"

但这似乎根本不起作用:

$('#enaCustomer').val(ui.item.label);

我这里一定缺少一些简单的东西,但我不知道它是什么。有什么想法吗?

参见演示:jQuery UI |自动完成 |自定义数据

会建议如下:

$("#enaCustomer").autocomplete({
source: "customerLookup.cfc?method=lookupCustomer&returnformat=json",
minLength: 2,
select: function(event, ui) {
$('#enaCustomer').val(ui.item.label);
$('#enaCusID').val(ui.item.value);
return false;
}
});

这会导致函数结束而不执行任何进一步的操作。

最新更新