2010-05-08 24 views

Respuesta

69

Si se incluye el archivo de métodos adicionales, aquí está el archivo actual de 1,7: http://ajax.microsoft.com/ajax/jquery.validate/1.7/additional-methods.js

Puede utilizar la regla de lettersonly :) Los métodos adicionales son parte de la cremallera de descargar, siempre se puede encontrar las últimas here .

He aquí un ejemplo:

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

Vale la pena señalar, cada método adicional es independiente, puede incluir que uno específico, basta con colocar esto antes de su .validate() llamada:

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

^[A-Za-z] + $ para aceptar también letras mayúsculas o establecer el valor en minúsculas con la función toLowerCase(). –

+0

upvoted para 'this.optional (elemento) ||' – Pankaj

4

Sólo una pequeña Además de la respuesta de Nick (que funciona muy bien!):

Si desea permitir espacios entre letras, por ejemplo, puede restringir el ingreso de solo letras con el nombre completo, pero también debe permitir el espacio; simplemente liste el espacio como se muestra a continuación con una coma. Y de la misma manera si es necesario para permitir que cualquier otro carácter específico:

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

Ten cuidado,

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

[az ", "] mediante la adición de las marcas por comas y comillas, usted está permitiendo que los espacios , comas y comillas en el cuadro de entrada.

Para espacios + texto, simplemente hacer esto:

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

[a-z] esto permite espacios aswell como único texto.

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

también el mensaje "Letras y espacios solo por favor" no es necesario, si ya tienen un mensaje en los mensajes:

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

Tanto Nick como respuestas de Adán funcionan muy bien.

Me gustaría añadir una nota si quiere permitir caracteres latinos como á y ç ya que quería hacer:

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

¡Gracias! pero también lo olvidaste, jeje :) – Andres

+0

¡Gracias, @Andres! Acabo de actualizar mi respuesta y agregué 'ñ' – FlavioEscobar

1

para permitir letras ans espacios

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; 
     } 
    }); 
Cuestiones relacionadas