2010-06-08 4 views
0

Ajout d'un validateur à ma forme:jQuery Validator - Texte dynamique

jQuery.validator.addMethod('whatever', function(val, el) { 
// whatever goes here 
}, 'A maximum of ' + $('#my_id_here').val() + ' categories can be selected.'); 

Cela ne vole pas. Je suis toujours indéfini. Est-ce une bonne façon simple de faire cela?

Merci

Répondre

1

Quelque chose comme ceci:

$(document).ready(function() 
{  

    jQuery.validator.addMethod("validateCountries", function(value, element) { 

        alert('s'); 

       return this.optional(element) || /^\d{3}-\d{3}-\d{4}$/.test(value); 
      }); 

    // add the validation rule 
    $("#form1").validate();  

    $("#lbCountries").rules("add", { validateCountries:true }); 

}); 

Dans la méthode Add vous pouvez effectuer votre validation!

MISE À JOUR 1:

Avec texte dynamique vous perdrez les messages d'erreur affichés. Voici un moyen de résoudre ce problème:

// add the validation rule 
    $("#form1").validate( 

    { 
     messages: { lbCountries: "please specify the countries" } 
    } 

    ); 

lbCountries est un contrôle ListBox.

MISE À JOUR 2:

Vous pouvez joindre un autre attribut de règle à la règle comme indiqué ci-dessous:

$("#lbCountries").rules("add", { validateCountries:true, noOfSelectedItems:3 }); 

Maintenant, vous pouvez vérifier la règle lorsque l'événement est déclenché:

$("#lbCountries").rules().noOfSelectedItems; // this will return 3 
+0

Mais que se passe-t-il si j'avais une liste de cases à cocher et je voulais m'assurer que seulement 4 ont été vérifiés, mais cette valeur ne peut pas être codée en dur? J'ai besoin d'un moyen de le faire parfois dire "Seuls les cases à cocher peuvent être sélectionnés.". – JamesB41

+0

Vous pouvez faire un hack (pas sympa) en ayant une propriété personnalisée sur la case à cocher comme seulement = 4. Maintenant, lorsque vous accédez à la liste de cases à cocher vous pouvez trouver combien de cases doivent être définies et vous pouvez valider cela! – azamsharp

+0

La validation elle-même n'est pas le problème, je peux juste utiliser un caché pour cela. La partie spécifique avec laquelle je suis en difficulté est de faire le * message * lui-même adapté au nombre que je cherche. – JamesB41