#forms #validation #drupal #drupal-7
#формы #проверка #drupal #drupal-7
Вопрос:
У меня довольно сложная регистрационная форма .. в ней около 40 полей (продолжайте и смейтесь, клиент хочет, чтобы это было именно так, ага).
Некоторые поля скрыты / отображаются на основе значений других полей.
Проблема с использованием встроенного в Drupal поля «обязательно» заключается в том, что поля, которые не отображаются, по-прежнему помечены как обязательные. Причина в том, что проверка Drupal выполняется на стороне сервера.
Мне нужно выполнить проверку на стороне клиента из-за того, что некоторые поля скрыты / показаны.
Возможно ли это вообще? Если да, то как мне это сделать?
Ответ №1:
Да, это возможно, для этого вы можете использовать свойство #ajax, для достижения этого вам придется довольно глубоко изучить form api.
http://drupal.org/node/1043838
Это будет нелегко, это один из самых сложных аспектов. Я думаю, что немного обучения помогло бы
Я бы посмотрел, возможно, на получение подписки на месяц, чтобы друпализировать меня илиhttps://buildamodule.com
Я использовал Druplaize me только потому, что в нем больше возможностей d6, но buildamodule.com очень хорошая цена — 29 долларов США в месяц. Удачи!
Ответ №2:
Я думаю, это описывает использование новой функции #state в FAPI. Вы можете прочитать об этом здесь: http://api.drupal.org/api/examples/form_example!form_example_states.inc/function/form_example_states_form/7
Ответ №3:
Вы можете взглянуть на модуль clientside_validation, он может обрабатывать «скрытые» поля. Но обычно Drupal validate должен учитывать #требуется в сочетании с #состояниями.