Есть поле со значениями а и б (радиокнопки)
если выбираем а выводится поле 2
если б - выводится поле 3
как произвести валидацию этих полей чтобы заполнялось бы только одно т.е. если два поля заполнено сохранение ноды не происходит выдается ошибка...
что нужно в функцию добавить подскажите...
function my_module_comment_form_validate($form, $form_state){
drupal_set_message('Будьте внимательнее у вас заполнено 2 поля, 'error');
}
?>
Комментарии
form_set_error
ну это ясно условия как прописывать ?
Выведи переменные $form и $form_state. Там понятно будет как до постовых переменных добраться.
echo '
';
и
echo '
';
???
if(!empty($form_state['values']['field_name_1']) && !empty($form_state['values']['field_name_1']))
form_set_error();
да я смотрю непонятно что то
такая конструкция не рапотает
if ($form_state['values']['field_teaser'] == '') {
form_set_error('field_teaser', 'Title of mere numbers is not valid');
}
}
всегда говрит об ошибке в форме в поле field_teaser чтобы не ввели
делаю так
switch ($form_id) {
case 'article_node_form':
$form['#validate'][] = 'mymodule_node_form_validate';
break;
}
}
function mymodule_node_form_validate($form, &$form_state) {
if($form_state['values']['field_teaser'] == '123456') {
form_set_error('field_teaser', 'Title of mere numbers is not valid');
}
}
т.е. при набирании 123456 в форме поля field_teaser
выдавать ошибку и не сохранять ноду.
нивыходит нифига
print_r вот что показывает
(
[field_name] => field_teaser
[type_name] => article
[display_settings] => Array
(
[weight] => 25
[parent] =>
[label] => Array
(
[format] => hidden
)
[teaser] => Array
(
[format] => default
[exclude] => 1
)
[full] => Array
(
[format] => default
[exclude] => 1
)
[4] => Array
(
[format] => default
[exclude] => 0
)
[token] => Array
(
[format] => default
[exclude] => 0
)
)
[widget_active] => 1
[type] => text
[required] => 0
[multiple] => 0
[db_storage] => 0
[module] => text
[active] => 1
[locked] => 0
[columns] => Array
(
[value] => Array
(
[type] => text
[size] => big
[not null] =>
[sortable] => 1
[views] => 1
)
)
[text_processing] => 0
[max_length] =>
[allowed_values] =>
[allowed_values_php] =>
[field_permissions] => Array
(
[create] => 0
[edit] => 0
[edit own] => 0
[view] => 0
[view own] => 0
)
[widget] => Array
(
[rows] => 5
[size] => 60
[vocabulary] =>
[terms] =>
[default_value] => Array
(
[0] => Array
(
[value] =>
[_error_element] => default_value_widget][field_teaser][0][value
)
)
[default_value_php] =>
[label] => Тизер
[weight] => -5
[description] =>
[type] => text_textarea
[module] => text
)
)
вроде решил вопрос как волидацию полей проводить.. на заполнение на цифры... на не заполнение
if($form_state['values']['field_teaser'][0]['value'] == '') {
form_set_error('field_teaser', 'Title of mere numbers is not valid');
}
}