2015-11-27 4 views
1

Я пытаюсь проверить google reCAPTCHA с формой, если reCAPTCHA является ложным, он должен показывать предупреждение, а кнопка должна идти на false. Я пытался с некоторым кодом, но его не работает кто-нибудь знает?Google reCAPTCHA с проверкой jQuery

Вот мой код

<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> 
+0

Не забудьте принять мой ответ, если он решит вашу проблему. Благодаря! –

ответ

5

Вы должны вызвать ваше if заявление в случае. Это очень легко:

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

Смотрите рабочий пример здесь: JSFiddle

Проблема с делать это в JavaScript на всех является то, что пользователь может легко подделать результат, если они хотят. Если вы действительно хотите проверить, является ли пользователь роботом или нет, вы все равно должны сравнивать результат, представленный пользователем (через POST) на стороне сервера, используя секретный ключ reCAPTCHA.

Смежные вопросы