Estoy tratando de validar google reCAPTCHA con un formulario si el reCAPTCHA es falso que debe mostrar una alerta y el botón va a false he probado con algo de código, pero no su trabajo alguien sabe?

Aquí está mi código

<div class="lets-talk-out"> </div>
<div class="slide-popup-box-form-main">
<div class="slide-popup-box-form">
<form id="lets-talk-frm" action="contactus.php" method="post" >
<input type="text"  name="name" id="name" placeholder="Name:" >
<input type="text"  name="email"  id="email" placeholder="Email:" >
<input type="text"  name="skype" id="skype" placeholder="Skype" >
<input type="text"  name="mobile" id="mobile" placeholder="Mobile:" >
<input type="hidden" name="slider_unlock" value="02" >
<input type="text"  name="date"   placeholder="Date:" id="ldate" >
<input type="text"  name="time"  placeholder="Time:" id="ltime" >
<div class="g-recaptcha" data-sitekey="6Lfc4xETAAAAALO-3I6chqeyOrpfDPRl1u7fW2XD"></div>
<input type="submit" id="lets-talk" value="submit" name="submit">
</form>
</div>
</div>
<script> 
var k=  jQuery.noConflict();
k(document).ready(function() { 
var options = { 
target:        '#lets-talk-out',   //target element(s) to be updated with server response 
}; 
k('#ltime').datetimepicker({ 
datepicker:false,
format:'H:i'
});
k('#ldate').datetimepicker({ 
timepicker:false,
format: 'Y/m/d',
minDate:'-1970/01/01'
}); 
//bind form using 'ajaxForm' 
k('#lets-talk-frm').ajaxForm({success:function(responseText, statusText, xhr, $form){ 
k('.slide-popup-box-form-main').prepend('<h4>'+responseText+'</h4>');
k('.slide-popup-box-form').hide();
//alert(responseText);
//showSlidingDiv();
//document.getElementById("lets-talk-out").html(responseText);
// k('#lets-talk-out').html(responseText);
},
}); 
}); 
k("#lets-talk-frm").validate({
rules: {
name: "required",
email: {
required: true,
email: true
},
//skype: "required",
mobile:{
required: true,
digits: true,
minlength: 7
},
date: "required",
time: "required",
},
messages:{
name: '',
email: '', skype: '', mobile: '', date: '', time: '', phone: '',
},
});
k( '#slider_full_1' ).sliderCaptcha({
type: "filled",
textFeedbackAnimation: 'swipe_overlap',
hintText: "Swipe to submit",
width: '300px',
height: '55px',
styles: {
knobColor: "#72ba1c",
knobColorAfterUnlock: "#000000",
backgroundColor: "#444",
textColor: "#fff",
textColorAfterUnlock: "#fff"
},
face: {
top: 0,
right: 9,
icon: 'tisind\images\arrow.png',
textColor: '#ddd',
textColorAfterUnlock: '#72ba1c',
topAfterUnlock: 0,
rightAfterUnlock: 9,                
iconAfterUnlock: 'flag'
},
events: {
submitAfterUnlock: 0,
validateOnServer: 1,
validateOnServerParamName: "slider_unlock"
}
}); 
var $ = jQuery.noConflict();
</script>
  • No olvide aceptar mi respuesta si se resuelve el problema. Gracias!
InformationsquelleAutor maddog | 2015-11-27

2 Comentarios

  1. 11

    Usted necesita para activar su if declaración en un evento. Es muy fácil:

    $('form').on('submit', function(e) {
    if(grecaptcha.getResponse() == "") {
    e.preventDefault();
    alert("You can't proceed!");
    } else {
    alert("Thank you");
    }
    });

    Ver ejemplo de trabajo aquí: JSFiddle

    El problema con hacer esto en JavaScript es que el usuario puede fácilmente falso el resultado si quieren. Si usted realmente quiere ser la comprobación de si el usuario es un robot o no, usted todavía debe ser comparar el resultado presentado por el usuario (por correo postal) en el lado del servidor utilizando su reCAPTCHA clave secreta.

  2. 0

    Para comprobar si google recaptcha v2 está marcado o no, puede hacerlo mediante el siguiente código :

    var checkCaptch = false;
    var verifyCallback = function(response) {
    if (response == "") {
    checkCaptch = false;
    }
    else {
    checkCaptch = true;
    }
    };
    $(document).ready(function() {
    $("#btnSubmit").click(function() {
    if (checkCaptch && grecaptcha.getResponse()!="") {
    //Write your success code here
    }
    });
    })

Dejar respuesta

Please enter your comment!
Please enter your name here