2011-06-12 2 views
2

У меня возникли проблемы с очисткой ввода формы после неудачной проверки формы.Ввод формы очистки при неудачной проверке формы в Drupal 7

Например, функция проверки формы выдавала ошибку, если в форме есть какой-либо элемент радиокнома, из которых две группы, оставшиеся без контроля. Если пользователь выбирает первую группу, но не выбирает вторую группу, возникает ошибка. Я хотел бы знать, как я могу очистить ввод формы таким образом, чтобы ранее выбранный переключатель в группе 1 был очищен.

Это делается с Drupal 7.

+0

Я считаю, что этот вопрос уже был дан ответ здесь: HTTP: //stackoverflow.com/questions/9235164/change-form-data-after-submit-in-drupal – Dewayne

+0

Это другой вопрос - в другом вопросе форма проходит проверку и попадает в функцию отправки. Этот вопрос касается того, как изменить данные формы из hook_validate, чтобы функция отправки не вызывалась ... –

ответ

-1

Вам нужно добавить функцию проверки того, что чистит form_state ...

function my_module_form_FORM_ID_alter(&$form, &$form_state, $form_id) { 
    $form['#validate'][] = 'my_module_clear_values_validate'; 
} 

function my_module_clear_values_validate($form, &$form_state) { 
    if ($form_state['submitted']) { 
    $form_state['values']['field_my_field'][LANGUAGE_NONE][0]['value'] = 'WHATEVS'; 
    } 
} 
+0

На самом деле не работает. –

+0

На самом деле это Карл. Это стандартный материал, я использую его на многих сайтах для управления обработкой формы. Я предполагаю, что вы не очистили кеш до тестирования, или не удосужились выдавать форму, чтобы узнать, какие поля вам нужно опорожнить. Вероятно, вы захотите использовать 'dsm ($ form)' через Devel для проверки формы. – doublejosh

+0

Подтверждение комментария Карла - это не работает. Ваше решение работает, чтобы * изменить * значение ввода (на «WHATEVS»), но оно не работает, чтобы * очистить * значение. – aaronbauman

Смежные вопросы