Предотвратите, чтобы свидание произошло в прошлом
У меня есть поле CCK, которое является датой. Я хочу, чтобы люди не вводили дату, которая произошла в прошлом. Я знаю, что вы можете установить Годы назад и вперед, и я установил это на -0:+2 но это просто ограничивает календарь. Есть идеи, что я могу сделать?
3 answers
API форм Drupal позволяет добавлять в форму собственные функции проверки. В этой теме форума приведен пример функции проверки поля даты. Документация находится здесь.
Я участвовал в исправлении, которое добавило бы эту функцию во всплывающее окно JavaScript, вы можете увидеть больше в очередь проблем. Прямо сейчас есть рабочий патч, но он еще не совсем готов, IMO.
Вы не должны полагаться только на JavaScript, так как его можно обойти, и должны добавить пользовательскую проверку, как описывает marcvangend. Это можно сделать, добавив обработчик проверки, проверив значение данных и сравнив его с текущими данными.
Я думаю, что вы ищете
1) hook_date_combo_process_alter(&$element, &$form_state, $context)
Этот крючок позволяет изменить элемент календаря для типа поля "комбинированная дата".
2) hook_date_popup_process_alter(&$element, &$form_state, $context)
Этот крючок позволяет изменить элемент календаря для типа поля "всплывающее окно даты".
В обоих случаях, чтобы запретить пользователю вводить прошлые даты, все, что вам нужно сделать, это - определить "minDate =0" внутри массива #datepicker_options.