Как скрыть поле даты рождения в переопределенной форме? - PullRequest
2 голосов
/ 29 июля 2010

В моей форме крючка alter это массив дат рождения:

[Birthdate] => Array(
  [#type] => fieldset
  [#title] => Birthdate
  [#weight] => 1
  [profile_birthdate] => Array(
    [#type] => date
    [#title] => Birthdate
    [#default_value] =>
    [#description] => The content of this field is kept private and will not be shown publicly.
    [#required] => 1
  )
)

Я пробовал:

unset($form['Birthdate']['profile_birthdate']);
     unset($form['Birthdate']);

и это не работает, так как я все еще получаю сообщение "Пожалуйста, введите правильную дату рождения". Я хочу, чтобы поле было скрыто, а сообщения нет.

1 Ответ

2 голосов
/ 29 июля 2010

Формулировка сообщения об ошибке («... a valid date ...») указывает на то, что оно выдается из функции проверки формы. В зависимости от того, как это написано, он все равно может попытаться проверить поле, даже если вы успешно удалили его из формы.

Если это так, вам нужно либо переопределить функцию проверки пользовательской версией, которая не ожидает поле даты рождения (проверьте содержимое $form['#validate'] в вашей реализации hook_form_alter()). В качестве альтернативы, вместо удаления поля вы можете превратить его в '#type' => 'hidden' или '#type' => 'value' и указать значение по умолчанию, которое проходит проверку, но тогда вы в конечном итоге назначите фиктивные даты рождения, которые могут оказаться не такими, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...