Форма регистрации
Ниже пример кода, который делает первое поле необязательным для заполнения в самой форме
<?php
function мой_модуль_form_alter(&$form, &$form_state, $form_id){
$form['field_website']['und'][0]['#required'] = FALSE;
//вот так поле становится необязательным для заполненияв самой форме
}
?>
<?php
$form['test']['und'][0]['value']=test;
?>
Но мне нужно чтобы после отправки формы происходила проверка содержимого в другом поле, и если оно совпадает с нужным значением "test", то первое поле становилось необязательным.
<?php
if($form['test']['und'][0]['value']=='test'){
$form['field_website']['und'][0]['#required'] = FALSE;
}
?>
пробовал использовать function form_submit но даже не знаю то это или не то, но на отправку формы она не повлияла.
Вложение | Размер |
---|---|
![]() | 22.5 КБ |
![]() | 17.03 КБ |
Комментарии
В классике делать через _validate , но я бы делал через ajax см. https://www.drupal.org/project/examples
Вот такой вариант пробовал но без результатов
<?php
function addreg_form_alter(&$form, &$form_state, $form_id) {
if (isset($form_state['input']['field_typprofile']['und'][0]['value'])) {
$form['field_website']['und'][0]['value']['#required'] = FALSE;
}
$form['#validate'][]='validate';
}
function
validate(&$form, &$form_state) {if (isset($form_state['input']['field_typprofile']['und'][0]['value'])) {
$form['field_website']['und'][0]['value']['#required'] = FALSE;
}
// form_set_error('title', '<pre>'.print_r($form['field']['field_typprofile'], true).'<pre>');
}
?>
function validate( - 5 баллов
Примерно "вот так вот" добавляем валидацию.
<?php
function addreg_form_alter(&$form, &$form_state, $form_id) {
if (isset($form_state['input']['field_typprofile']['und'][0]['value'])) {
$form['field_website']['und'][0]['value']['#required'] = FALSE;
}
$form['#validate'][]='addreg_form_validate';
}
function
addreg_form_validate(&$form, &$form_state) {if($form_state['values']['test']=='test'){
form_set_error('test][', 'Что вы ввели?');
}
}
?>