我一定是在失去理智。
<cfif cgi.request_method eq "POST">
<cfoutput>
Form.fieldnames = #form.fieldnames#<br>
structKeyList(form) = #structKeyList(form)#
</cfoutput>
</cfif>
<form method="post" accept-charset="utf-8">
<input type="text" name="graduation_date" value="x"><br>
<input type="text" name="foo" value="y"><br>
<input type="text" name="bar" value="z"><br>
<input type="submit" value="Submit Form" >
</form>
form.fieldnames
变量应包含已提交字段的列表:foo
,bar
和graduation_date
。但graduation_date
遗失了。
经过多一点测试后,我发现以_date
结尾的任何内容都被排除在form.fieldnames
之外。
我打算问我的代码有什么问题,但现在我已经确信它是ColdFusion中的一个错误。 (我在使用ColdFusion 8.0.1 / OS X 10.5.6。)
这是ColdFusion中的一个错误,对吧?
答案 0 :(得分:15)
也许这是custom validation feature(又名“使用隐藏字段验证表单数据”)?
基本上,通过使用一些特定格式的表单字段(field_required
,field_date
,field_integer
等),您可以对表单执行服务器端验证。
这可以追溯到几个版本的ColdFusion,当CFFORM不是非常强大时,可以让你不必为每个表单字段编写验证代码。现在有更好的方法可以实现这一点,但它仍然存在向后兼容性。
答案 1 :(得分:0)
是的,我和ColdFusion 8一起遇到了这个小问题。我几乎已经准备好对我的服务器进行飞行测试,试图弄清楚为什么一个名为“asof_date”的文本框没有被执行,也没有出现在FIELDNAMES字段中在我发布的数据中(这解释了为什么它被忽略)。我称之为正交性方面的错误。一旦我将名称更改为“pub_asof”,它就可以正常工作。哎呀!!