Как сделать обьязательным поле google recaptcha? Например если пользователь не прошел капчу то кнопка отправить не работает
window.onload = function() {
var $recaptcha = document.querySelector('#g-recaptcha-response');
if($recaptcha) {
$recaptcha.setAttribute("required", "required");
}
const $form = document.querySelector('form');
$form.addEventListener('submit', (event) => {
event.preventDefault();
console.log('prevented submit by code for demo');
});
};
.wrapper {
padding: 100px;
}
#g-recaptcha-response {
display: block !important;
position: absolute;
margin: -78px 0 0 0 !important;
width: 302px !important;
height: 76px !important;
z-index: -999999;
opacity: 0;
}
<div class="wrapper">
<form>
<div class="g-recaptcha" data-sitekey="6LcCsWoUAAAAAO520lKAXtblM0p76KNXL3n0dVUZ"></div>
<button type="submit"> Submit</button>
</form>
</div>
Чтобы посмотреть на пример в работе: https://codepen.io/internetztube/pen/aaoLqM
Суть кода заключается в том, чтобы после загрузки страницы повесить на input g-recaptcha-response атрибут required. Так как базовых возможностей нет. Всегда пользовался этим решением, никогда не подводил.
UPD:
$form.addEventListener('submit', (event) => {
event.preventDefault();
console.log('prevented submit by code for demo');
});
Вот тут перехватывается отправка. Вместо console.log('prevented submit by code for demo'); иницируете отправку формы.
Продвижение своими сайтами как стратегия роста и независимости