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.
Cette méthode semble faire ce que vous voulez:
$('#email-field-only').valid();
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 ...
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.
$("#FormId").validate().element('#FieldId');
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)*/
}
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