Перейти к основному содержанию

recaptcha и ajax_comment

Отправлено said от сб, 02/20/2016 - 16:29

Столкнулся с проблемой при которой recaptcha не отображается повторно после отправки ajax формы при возникновении ошибок валидации.

Дело оказалось в том, что recaptcha навешивается в теге head страницы при событии window.onload, ну и естественно при ajax запросе повторно не срабатывает. В качестве решения подгружаю скрипт рекаптчи в форме. Таким образом скрипт загружается при каждом рендере формы.

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'comment_node_product_form') {
    // чтобы recaptcha работала через ajax
    $form['comment_body']['#suffix'] = '<script src="https://www.google.com/recaptcha/api.js?hl=ru" async="async" defer="defer"></script>';
  }
}

 

Теги