Предотвратите, чтобы свидание произошло в прошлом


У меня есть поле CCK, которое является датой. Я хочу, чтобы люди не вводили дату, которая произошла в прошлом. Я знаю, что вы можете установить Годы назад и вперед, и я установил это на -0:+2 но это просто ограничивает календарь. Есть идеи, что я могу сделать?

Author: Jeff, 2011-05-09

3 answers

API форм Drupal позволяет добавлять в форму собственные функции проверки. В этой теме форума приведен пример функции проверки поля даты. Документация находится здесь.

 3
Author: marcvangend, 2011-05-09 08:53:29

Я участвовал в исправлении, которое добавило бы эту функцию во всплывающее окно JavaScript, вы можете увидеть больше в очередь проблем. Прямо сейчас есть рабочий патч, но он еще не совсем готов, IMO.

Вы не должны полагаться только на JavaScript, так как его можно обойти, и должны добавить пользовательскую проверку, как описывает marcvangend. Это можно сделать, добавив обработчик проверки, проверив значение данных и сравнив его с текущими данными.

 2
Author: googletorp, 2011-05-09 09:04:39

Я думаю, что вы ищете

1) hook_date_combo_process_alter(&$element, &$form_state, $context)

Этот крючок позволяет изменить элемент календаря для типа поля "комбинированная дата".

2) hook_date_popup_process_alter(&$element, &$form_state, $context)

Этот крючок позволяет изменить элемент календаря для типа поля "всплывающее окно даты".

В обоих случаях, чтобы запретить пользователю вводить прошлые даты, все, что вам нужно сделать, это - определить "minDate =0" внутри массива #datepicker_options.

 0
Author: Kunal Kursija, 2014-11-30 13:27:08