ColdFusion中form.fieldnames缺少值

Pat*_*ney 10 coldfusion

我一定是在失去理智.

<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>
Run Code Online (Sandbox Code Playgroud)

form.fieldnames变量应包括提交字段的列表:foo,bar,和graduation_date.但是graduation_date缺少了.

经过一些测试后,我发现任何以结尾为_date目的的东西都被排除在外form.fieldnames.

我打算问我的代码有什么问题,但现在我确信这是ColdFusion中的一个错误.(我在使用ColdFusion 8.0.1/OS X 10.5.6.)

这是ColdFusion中的一个错误,对吧?

mat*_*erg 15

也许这是自定义验证功能(又名"使用隐藏字段验证表单数据")?

从本质上讲,通过使用一些特定格式的表单字段(field_required,field_date,field_integer等),您可以执行你的表格服务器端验证.

这可以追溯到几个版本的ColdFusion,当CFFORM不是非常强大时,可以让你不必为每个表单字段编写验证代码.现在有更好的方法可以做到这一点,但它仍然存在向后兼容性.

  • 这不是一个错误,它只是一个非常糟糕的决定,为了向后兼容而维护. (2认同)