2010-05-08 3 views

Répondre

69

Si vous incluez le fichier des méthodes supplémentaires, voici le fichier en cours de 1,7: http://ajax.microsoft.com/ajax/jquery.validate/1.7/additional-methods.js

Vous pouvez utiliser la règle lettersonly :) Les méthodes supplémentaires font partie du zip télécharger, vous pouvez toujours trouver la dernière here .

Voici un exemple:

$("form").validate({ 
    rules: { 
    myField: { lettersonly: true } 
    } 
}); 

Il convient de noter, chaque méthode supplémentaire est indépendante, vous pouvez inclure qu'un particulier, il suffit de placer cette avant .validate() appel:

jQuery.validator.addMethod("lettersonly", function(value, element) { 
    return this.optional(element) || /^[a-z]+$/i.test(value); 
}, "Letters only please"); 
+0

^[A-Za-z] + $ pour accepter aussi les lettres majuscules, ou mettre la valeur en minuscule avec la fonction toLowerCase(). –

+0

mis en cache pour 'this.optional (element) ||' – Pankaj

4

Juste un petit En plus de la réponse de Nick (qui fonctionne très bien!):

Si vous voulez autoriser les espaces entre les lettres, par exemple, vous pouvez restreindre pour entrer seulement des lettres dans le nom complet, mais il devrait également permettre l'espace - énumérer juste l'espace comme ci-dessous avec une virgule. Et de la même manière si vous avez besoin pour permettre à tout autre caractère spécifique:

jQuery.validator.addMethod("lettersonly", function(value, element) 
{ 
return this.optional(element) || /^[a-z," "]+$/i.test(value); 
}, "Letters and spaces only please");  
13

Attention,

jQuery.validator.addMethod("lettersonly", function(value, element) 
{ 
return this.optional(element) || /^[a-z," "]+$/i.test(value); 
}, "Letters and spaces only please"); 

[az ", « ] en ajoutant les marques par des virgules et les guillemets, vous permettant des espaces , des virgules et des guillemets dans la zone de saisie.

Pour les espaces + texte, il suffit de faire ceci:

jQuery.validator.addMethod("lettersonly", function(value, element) 
{ 
return this.optional(element) || /^[a-z ]+$/i.test(value); 
}, "Letters and spaces only please"); 

[a-z] cela permet des espaces aswell comme du texte.

.............................................. ..............................

également le message "Lettres et espaces seulement s'il vous plaît" n'est pas nécessaire, si vous déjà un message dans les messages:

messages:{ 
     firstname:{ 
     required: "Enter your first name", 
     minlength: jQuery.format("Enter at least (2) characters"), 
     maxlength:jQuery.format("First name too long more than (80) characters"), 
     lettersonly:jQuery.format("letters only mate") 
     }, 

Adam

2

Nick et les réponses d'Adam fonctionnent très bien.

Je voudrais ajouter une note si vous voulez autoriser les caractères latins comme á et ç que je voulais faire:

jQuery.validator.addMethod('lettersonly', function(value, element) { 
    return this.optional(element) || /^[a-z áãâäàéêëèíîïìóõôöòúûüùçñ]+$/i.test(value); 
}, "Letters and spaces only please"); 
+1

Merci! mais vous aussi oublié ñ hehe :) – Andres

+0

Merci, @Andres! Je viens de mettre à jour ma réponse et ajouté 'ñ' – FlavioEscobar

1

pour permettre des Lettres et des espaces

jQuery.validator.addMethod("lettersonly", function(value, element) { 
return this.optional(element) || /^[a-z\s]+$/i.test(value); 
}, "Only alphabetical characters"); 

$('#yourform').validate({ 
     rules: { 
      name_field: { 
       lettersonly: true 
      } 
     } 
    }); 
0
$('.AlphabetsOnly').keypress(function (e) { 
     var regex = new RegExp(/^[a-zA-Z\s]+$/); 
     var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
     if (regex.test(str)) { 
      return true; 
     } 
     else { 
      e.preventDefault(); 
      return false; 
     } 
    }); 
Questions connexes