2017-10-19 3 views
0

J'ai un formulaire avec captcha. Les validations fonctionnent correctement lorsque la page est chargée. Mais les utilisateurs peuvent recharger captcha avec une valeur différente. Dans ce temps, la validation jquery ne fonctionne pas. equalTo fonction vérifie la première valeur de ce champ de saisie, pas la dernière valeur après rechargement. Aidez-moi s'il vous plaît à le réparer.Jquery validation equalTo fonction ne fonctionne pas lorsque la valeur d'entrée change

HTML

<div class="refreshcaptcha dispinitial"><input type="text"></div> 

de validation JQuery

$("#hireform").validate({ 
    ignore: ".ignore" 
    , errorElement: "label" 
    , errorClass: "has-error" 
    , submitHandler: function (e) { 
     e.submit() 
    } 
    , highlight: function (e) { 
     $(e).closest(".form-group").removeClass("success").addClass("has-error") 
    } 
    , rules: { 
     name: { 
      required: !0 
      , maxlength: 45 
     } 
     , email: { 
      required: !0 
      , maxlength: 100 
     } 
     , message: { 
      required: !0 
      , minlength: 6 
      , maxlength: 1500 
     } 
     , captcha: { 
      equalTo: $('#hireform').find('.refreshcaptcha>input') 
     } 
    } 
}) 

Répondre

0

J'ai trouvé une solution simple.

  1. Peut utiliser la fonction equalTo dans le champ de saisie. Ou
  2. Créer une equalTo: "#cap_val_reload" dans le jquery

HTML

<input type="text" name="captcha" equalTo="#cap_val_reload" class="form-control captchauser" minlength="5" required maxlength="5" value="" placeholder="Please enter above value"> 

JQuery

$("#hireform").validate({ 
    ignore: ".ignore" 
    , errorElement: "label" 
    , errorClass: "has-error" 
    , submitHandler: function (e) { 
     e.submit() 
    } 
    , highlight: function (e) { 
     $(e).closest(".form-group").removeClass("success").addClass("has-error") 
    } 
    , rules: { 
     name: { 
      required: !0 
      , maxlength: 45 
     } 
     , email: { 
      required: !0 
      , maxlength: 100 
     } 
     , message: { 
      required: !0 
      , minlength: 6 
      , maxlength: 1500 
     } 
     , captcha: { 
      required: !0 
      equalTo: "#cap_val_reload" 
     } 
    } 
}) 
0

valeur captcha de magasin comme une constante, lors de l'actualisation changement cette constante. et en validation, vérifiez si catcha est égal à constant. Je peux aider beaucoup sans voir plus de code.

+0

Il y a un bouton pour les utilisateurs de changer la valeur '.refreshcaptcha> input'. Juste image quand ils cliquent sur ce bouton cette valeur continuera à changer encore et encore. Donc, je veux égaler ces valeurs. Quand j'utilise la fonction 'equalTo', elle vérifie la première valeur. pas la dernière valeur que l'utilisateur a changé. J'espère que vous l'aurez compris. – acmsohail

+0

Je suppose que ce n'est pas google captcha .. Lorsque l'utilisateur appuie sur le bouton rafraîchit, remplacez la nouvelle valeur par la constante. et dans la validation vérifiez si captcha est égal à la constante .. J'espère que vous l'obtenez –

+0

Ce n'est pas google captcha. J'utilise une fonction par défaut dans le framework CodeIgniter. J'utilise ajax pour recharger le captcha et changer la valeur. J'ai essayé la valeur constante mais je n'ai pas d'entraînement. – acmsohail

0

peut-être utiliser .Modification()

$("input[type='text']").change(function() { 
 
    alert("work") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text">

Click for Explain

+0

Il ne fonctionne pas dans 'validate' – acmsohail

+0

Je suis d'accord Blesson Christy, envoyez s'il vous plaît à plus de code. –