Я добавил ответ на other question, который первоначально был открыт по этому же вопросу. Я также опубликую здесь немного, так как пользователи могут найти этот вопрос, а не другой. Или вы можете удалить этот вопрос.
Я считаю, что проблема заключается в том, что атрибут mask
по коду <cfinput type="datefield" ...
работает только при использовании Flash-форм - documentation reference.
У меня есть подчеркнул текст из этой документации ниже:
маскирующего cfcalendar и DateField вход
В cfcalendar теге и флэш-контроль входного формата DateField , для определения формата вывода используются следующие маски. Вы можете использовать заглавные или строчные символы в маске:
...
Следующий шаблон указывает, что флэш форма посылает дату, выбранную с помощью управления вводом DateField в ColdFusion в виде текста в формате 04/29/2004:
<cfinput name="startDate" type="datefield" label="date:" mask="mm/dd/yyyy"/>
Поскольку вы не используете Flash, образуют маска не работает для вас. Вы можете попробовать перейти на обычный вход <cfinput type="text" ...
и сменить маску на что-то вроде "99/99/9999"
. Это даст вам правильный формат, но пользователь все равно может ввести недопустимые даты, поэтому вам понадобится дополнительный код, чтобы поймать его.
Это еще один пример того, почему использование встроенных тегов ColdFusion не является хорошей идеей. Они работают для очень простых примеров, но когда вам нужно больше настроек, они вас не подведут. Вам будет лучше использовать библиотеку JavaScript (например, jQuery) для проверки на стороне клиента. Собственный Adobe Ben Forta acknowledged this several years ago. Из-за этого также был запущен ColdFusion-UI-the-Right-Way project.
EDIT
С другой вопрос, который был размещен Адам отметил another reference in the ColdFusion documentation, что усиливает мою точку зрения.У меня есть подчеркнул текст из этой документации ниже:
Маскирующие входные данные
В HTML и Flash-форм, атрибут маски контролирует формат данных, которые могут быть введены в текст поле или оно выбрано в календаре управления входным сигналом даты. В HTML-формате это не мешает пользователям вводить дату, которая не следует маске, в элемент управления ввода даты. Вы можете комбинировать маскирование и проверку на поле.
Разве это не дублирующий вопрос? http://stackoverflow.com/q/26286518/1636917. Как я уже говорил, тип даты используется для форм Flash. Вот почему это не работает для вас. –
Вы видите ответ, чтобы исправить это? –
Невозможно исправить. Это только для форм Flash. –