web-dev-qa-db-fra.com

Plugin de validation jQuery - Validation du déclenchement d'un champ par un déclencheur

J'ai un formulaire qui peut éventuellement être pré-rempli via Facebook Connect. Une fois qu'un utilisateur s'est connecté, son nom et son adresse électronique sont automatiquement renseignés. Le problème est que cela ne déclenche pas la validation à distance pour vérifier si l'e-mail existe déjà.

Existe-t-il un moyen d'appeler la validation sur ce champ uniquement? Quelque chose comme:

$('#email-field-only').validate()

serait une idée. Recherche dans la documentation sans succès.

82
ryan

Cette méthode semble faire ce que vous voulez:

$('#email-field-only').valid();
140
Gregoire

Pour une raison quelconque, certaines des autres méthodes ne fonctionnent pas tant que le champ n'a pas été ciblé/brouillé/modifié, ou qu'une soumission n'a pas été tentée ... cela fonctionne pour moi.

$("#formid").data('validator').element('#element').valid();

J'ai dû creuser à travers le script jquery.validate pour le trouver ...

20
Tracker1

Utilisez Validator.element() :

Valide un seul élément, renvoie true s'il est valide, false sinon.

Voici l'exemple présenté dans l'API:

var validator = $( "#myform" ).validate();
validator.element( "#myselect" );

.valid() valide l'intégralité du formulaire, comme d'autres l'ont souligné. L'API dit:

Vérifie si le formulaire sélectionné est valide ou si tous les éléments sélectionnés sont valides.

16
Paul
$("#FormId").validate().element('#FieldId');
12
aslanpayi

Si vous souhaitez valider un champ de formulaire individuel, mais que vous ne voulez pas que l'interface utilisateur soit déclenchée et affiche des erreurs de validation, vous pouvez envisager d'utiliser la méthode Validator.check (), qui renvoie si un champ donné est validé ou non.

Voici un exemple

var validator = $("#form").data('validator');
if(validator.check('#element')){
    /*field is valid*/
}else{
    /*field is not valid (but no errors will be displayed)*/
}
7
Dmitry Komin

Lorsque vous configurez votre validation, vous devez enregistrer l’objet validateur. vous pouvez l'utiliser pour valider des champs individuels.

<script type="text/javascript">
var _validator;
$(function () {    
     _validator = $("#form").validate();   
});

function doSomething() {    
     _validator.element($('#someElement'));
}
</script> 

- croix posté avec cette question similaire

6
ShaneBlake