Столкнулся с проблемой при которой 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>';
}
}
- Log in to post comments