Значение отсутствует в имени form.field в 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>

Переменная form.fieldnames должна включать список представленных полей: foo, bar и graduation_date. Но graduation_date отсутствует.

После небольшого тестирования я вижу, что что-либо, заканчивающееся на _date, исключается из form.fieldnames.

Я собирался спросить, что не так с моим кодом, но теперь я довольно убежден, что это ошибка в ColdFusion. (Я нахожусь в ColdFusion 8.0.1/OS X 10.5.6.)

Это ошибка в ColdFusion, правильно?

Ответ 1

Может быть, это пользовательская функция проверки (ака "Проверка данных формы с помощью скрытых полей" )?

По существу, используя некоторые специально форматированные поля формы (field_required, field_date, field_integer и т.д.), вы можете выполнить проверку своих форм на стороне сервера.

Это возвращает несколько версий ColdFusion, когда CFFORM не очень надежна и не позволяет вам писать код проверки для каждого из полей формы. Есть лучшие способы сделать это сейчас, но он все еще там для обратной совместимости.

Ответ 2

Да, я столкнулся с этой небольшой проблемой и с ColdFusion 8. Я был практически готов к летной проверке своего сервера, пытаясь понять, почему текстовое поле с именем "asof_date" не было обработано или не появилось в поле FIELDNAMES в моих опубликованных данных (что объясняет, почему его игнорировали). Я называю это ошибкой в ​​терминах ортогональности. Как только я сменил имя на "pub_asof", он работал нормально. Argh!!