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