2016-02-19 1 views
0

J'utilise le plugin de validation jQuery pour valider le nom d'utilisateur déjà existant ou non.Plugin de validation jQuery: fonction de succès

La validation fonctionne, je veux insérer une icône après l'élément d'entrée si la validation est réussie. le code est le suivant:

$(function() { 
    $("#register").validate({ 
     //... 
     success: function(element) { 
      if (element.is('input[name="name"]')) { 

       //'<i class="fa fa-check fa-lg"></i>' is an icon 
       $('input[name="name"]').after('<i class="fa fa-check fa-lg"></i>'); 
      } 
     }, 
    //... 
    }); 
}); 

Répondre

5

Le premier argument de success est l'élément label, et non la input

jQuery(function($) { 
 
    var validator = $('#myform').validate({ 
 
    rules: { 
 
     name: { 
 
     required: true, 
 
     minlength: 3 
 
     }, 
 
     somefield: { 
 
     required: true, 
 
     minlength: 5 
 
     } 
 
    }, 
 
    messages: {}, 
 
    success: function(label, elem) { 
 
     var element = $(elem); 
 
     if (element.is('input[name="name"]') && !element.next().is('i.fa-check')) { 
 
     element.after('<i class="fa fa-check fa-lg"></i>'); 
 
     } 
 
    } 
 
    }); 
 
});
<link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.css" rel="stylesheet"/> 
 
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css" rel="stylesheet" /> 
 
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.js"></script> 
 
<form id="myform" method="post" action=""> 
 
    <input name="name" /> 
 
    <input name="somefield" /> 
 
    <input type="submit" value="Save" /> 
 
</form>