Валидация двух полей формы

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 14 декабря 2011 в 13:22

Есть поле со значениями а и б (радиокнопки)

если выбираем а выводится поле 2

если б - выводится поле 3

как произвести валидацию этих полей чтобы заполнялось бы только одно т.е. если два поля заполнено сохранение ноды не происходит выдается ошибка...

что нужно в функцию добавить подскажите...

<?php
    function my_module_comment_form_validate($form, $form_state){

             
         

                drupal_set_message('Будьте внимательнее у вас заполнено 2 поля, 'error');
        }
   
?>

Комментарии

Аватар пользователя iNFerNo iNFerNo 14 декабря 2011 в 15:02

да я смотрю непонятно что то

такая конструкция не рапотает

function mymodule_node_form_validate($form, &$form_state) {

  if ($form_state['values']['field_teaser'] == '') {
    form_set_error('field_teaser', 'Title of mere numbers is not valid');
  }
}

всегда говрит об ошибке в форме в поле field_teaser чтобы не ввели

Аватар пользователя iNFerNo iNFerNo 14 декабря 2011 в 15:10

делаю так

function mymodule_form_alter(&$form, $form_state, $form_id) {

   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

выдавать ошибку и не сохранять ноду.

нивыходит нифига

Аватар пользователя iNFerNo iNFerNo 14 декабря 2011 в 15:17

print_r вот что показывает

            [field_teaser] => Array
                (
                    [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
                        )

                )

Аватар пользователя iNFerNo iNFerNo 14 декабря 2011 в 15:26

вроде решил вопрос как волидацию полей проводить.. на заполнение на цифры... на не заполнение

function mymodule_article_node_form_validate($form, &$form_state) {

if($form_state['values']['field_teaser'][0]['value'] == '') {
 form_set_error('field_teaser', 'Title of mere numbers is not valid');

}

}