I tried google recaptcha v3 , After adding button it need to click twice to complete action.
$(document).ready(function() {
$("#reg-submit").on('click', function(e){
e.preventDefault();
// alert('hi');
var isvalid4 = true;
var patternPhone = /^(?=.*[0-9])[- +()0-9]+$/;
if($('#fullName').val() == '') {
$('#name_error').text($('#name_error').data("error-mandatory"));
isvalid4 = false;
}
if($('#email').val() == '') {
$('#email_error').text($('#email_error').data("error-mandatory"));
isvalid4 = false;
} else {
if (!validateEmail($('#email').val())) {
$('#email_error').text($('#email_error').data("error-invalidemail"));
isvalid4 = false;
}
}
if($('#phone').val() == '') {
$('#phone_error').text($('#phone_error').data("error-mandatory"));
isvalid4 = false;
}
if( $('#phone').val() != '' ) {
var telPhone = $('#phone').val();
if ($.trim(telPhone).match(patternPhone)) {
$('#phone_error').text('');
} else {
$('#phone_error').text($('#phone_error').data("error-invalidphone"));
isvalid4 = false;
}
}
if($('#company').val() == '') {
$('#company_error').text($('#company_error').data("error-mandatory"));
isvalid4 = false;
}
if(!isvalid4) {
return false;
}
if (grecaptcha.getResponse().length != 0) {
$("#reg-submit").attr("disabled", true);
$.ajax({
type: 'POST',
url: $('#form-ajaxurl').val(),
data: $('#demo_form').serialize(),
success: function(data){
$('#reg-submit').attr("disabled", false);
var output = JSON.parse(data);
if(output.error == 1) {
$('#form-errors').html(output.result);
}
else if(output.error == 2){
$('#form-errors').html(output.result);
}
else {
window.location.href = output.result;
}
}
});
}
else
{
}
});
Html Button
div class="form_wrpr">
<f:form.hidden id="g-recaptcha-response" property="g-recaptcha-response" /> button class="g-recaptcha btn btn-blue" id="reg-submit"
data-sitekey="{fields.clientKey}" >
{fields.Button}</button>
/div>