Вы здесь

Как сделать форму с #action на внешний адрес и ajax валидацией?

0

Есть кастомная форма, данные с которой должны уходить и перенаправлять пользователя на другой сайт платежной системы. В форме присутствует ключ #action, в котором адрес, на который перенаправляет пользователя.

В форме, при этом, есть обязательные поля. Но при имеющимся #action, стандартная валидация игнорируется. В сети много материала по этому поводу, но я не нашел дельного решения. Еще необходимо, чтобы валидация работала по ajax, например, как тут: http://xandeadx.ru/blog/drupal/822.

Пишут, что можно не указывать action, а в сабмите отправлять форму, но как при этом и отправлять данные и пользователя?

Версия Drupal: 
7.x
Категория: 
Form API
Вопрос задан 15.01.2017 - 00:26

Ответы

2

как-нибудь так

function myform_ajax_submit($form, &$form_state) {
  if (form_get_errors()) {
    return $form;
  }
  else {
    return array(
      '#type' => 'ajax',
      '#commands' => array(
        ajax_command_invoke('#myform', 'attr', array('action', 'http://example.com/')),
        ajax_command_invoke('#myform', 'submit'),
      ),
    );
  }
}
Ответ дан 15.01.2017 - 01:03
Аватар пользователя xandeadx
xandeadx
1542

Спасибо ещё раз!
Работает, я даже не подумал в эту сторону...

Комментарий оставлен 15.01.2017 - 12:54