Javascript自动完成-ColdFusion-具有唯一标识符
我发现了这段代码,它工作得很好 但是我还需要一个与名字相关联的身份证 所以这个例子有一个州,比如加利福尼亚州,但我也有一个与加利福尼亚州相关联的唯一ID,比如yye4等等 我可以使用coldfusion轻松创建列表,如下所示Javascript自动完成-ColdFusion-具有唯一标识符,javascript,forms,coldfusion,Javascript,Forms,Coldfusion,我发现了这段代码,它工作得很好 但是我还需要一个与名字相关联的身份证 所以这个例子有一个州,比如加利福尼亚州,但我也有一个与加利福尼亚州相关联的唯一ID,比如yye4等等 我可以使用coldfusion轻松创建列表,如下所示 var getStates = function(){ return [<cfoutput query=ulist>"#username#",</cfoutput>];
var getStates = function(){
return [<cfoutput query=ulist>"#username#",</cfoutput>];
}
但我还需要在表单中传递一个唯一的数字,该数字也与每个用户名关联
想法
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<cfajaximport tags="cfinput-autosuggest">
<script>
var init = function()
{
autosuggestobj = ColdFusion.Autosuggest.getAutosuggestObject('state');
autosuggestobj.itemSelectEvent.subscribe(foo);
}
var foo = function(event,args)
{
var msg = "";
msg = msg + "Event: " + event + "\n\n";
msg = msg + "Selected Item: " + args[2] + "\n\n";
msg = msg + "Index: " + args[1]._nItemIndex + "\n\n";
alert(msg);
}
var getStates = function(){
return ["California","Connecticut","Colorado","Illinois","Alabama","Iowa","Utah","Alaska"];
}
</script>
</head>
<body>
<h3>Attaching an event handler to the autosuggest object</h3>
<cfform name="mycfform" method="post" >
State:<BR>
<cfinput
type="text"
name="state"
autosuggest="javascript:getStates({cfautosuggestvalue})"
autosuggestMinLength=1
autosuggestBindDelay=1>
<cfset ajaxOnLoad("init")>
</cfform>
</body>
</html>
大概是这个?我使用了一个文本框,而不是一个隐藏的字段,这样你就可以看到它的作用
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<cfajaximport tags="cfinput-autosuggest">
<script>
// itcodes would contain the unique numbers instead of sample names.
var itCodes = ["Callie","Connie","Col","Illiana","Allie","Fred","Daphne","Alex"];
var itNames = [];
var init = function()
{
autosuggestobj = ColdFusion.Autosuggest.getAutosuggestObject('state');
autosuggestobj.itemSelectEvent.subscribe(foo);
}
var foo = function(event,args)
{
var msg = "";
var nameIndex = itNames.indexOf(document.getElementById('state').value);
msg = msg + "Event: " + event + "\n\n";
msg = msg + "Selected Item: " + args[2] + "\n\n";
msg = msg + "Index: " + args[1]._nItemIndex + "\n\n";
document.getElementById('hCodes').value = itCodes[nameIndex];
alert(msg);
}
var getStates = function(){
itNames = ["California","Connecticut","Colorado","Illinois","Alabama","Iowa","Utah","Alaska"];
return itNames;
}
</script>
</head>
<body>
<h3>Attaching an event handler to the autosuggest object</h3>
<cfform name="mycfform" method="post" >
State:<BR>
<cfinput
type="text"
name="state" id="state"
autosuggest="javascript:getStates({cfautosuggestvalue})"
autosuggestMinLength=1
autosuggestBindDelay=1>
<input type="text" id="hCodes" name="hCodes" value="">
<cfset ajaxOnLoad("init")>
</cfform>
你提到的这段代码是什么?Adobe CFAuto Suggest(Adobe CFAuto Suggest)的东西——它可以获得自动完成功能——但我需要第二个字段,其中填充了唯一的id。如果名称是唯一的,用户无法更改,为什么名称本身不够好。此外,如果用户可以拒绝所有autosuggest值并键入他想要的任何内容,那么您如何处理id字段?我明白您的意思,Dan-仅当使用各种其他代码搜索/插入时-我使用的是唯一id等。。。也许更好的解决方案是自动完成选择框…对于美国各州,我会使用选择框。我很抱歉,我看到它不起作用了。我将尝试修复。已更新。可在Chrome和Firefox上运行,并在CFLive.net上进行了测试@珍珠人梅尔似乎无法让它运行。可能会坚持下拉选择框是的,我看到了丹对这个问题的评论,他们是明智的。您还可以查看jQuery插件“selected”,以便将来实现类似的功能。但是,正如Dan所说,一个简单的州选择框就足够了。如果不仅仅是州选择框,那么您需要一个没有现有数据库记录的值计划。