jQuery validate plugin: aceptar solo letras?

Estoy usando el complemento de validación de http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Lo que estoy tratando de encontrar es una forma de hacer que algunos de los campos de mi formulario acepten solo letras, sin números, caracteres especiales, etc.

¿Alguna idea gente? Muchas gracias.

Simplemente agregue un validador personalizado y úselo de esta manera:

jQuery.validator.addMethod("accept", function(value, element, param) { return value.match(new RegExp("." + param + "$")); }); 

Sólo números:

 rules: { field: { accept: "[0-9]+" } } 

Solo cartas

 rules: { field: { accept: "[a-zA-Z]+" } } 

Un pequeño cambio.

 jQuery.validator.addMethod("accept", function(value, element, param) { return value.match(new RegExp("^" + param + "$")); }); 

Porque de esa manera estaba aceptando expresiones como “#abc”.

Use el código a continuación en su script. esto agregará una nueva cláusula a su validador.

 $.validator.addMethod( "alphabetsOnly", function(value, element, regexp) { var re = new RegExp(regexp); return this.optional(element) || re.test(value); }, "Please check your input values again!!!." ); $("#formElement").rules("add", {alphabetsOnly: "^[a-zA-Z'.\\s]$" }) 

Pruebe de esta manera:

  var numbers = /[0-9]+/; var SpCharacters = /^\s*[a-zA-Z0-9\s]+\s*$/; if (!numbers.test(name) && !SpCharacters.test(name)) { return [false, "Name should be alphabetical.", ""]; } 

El siguiente método para agregar un validador personalizado funciona bien, pero la validación ocurre en la tecla, por lo que el error sigue apareciendo mientras el usuario está escribiendo el texto.

 return value.match(new RegExp("")); 

El siguiente método funciona bien para alfabetos y espacios, ideal para campos de nombre.

 jQuery.validator.addMethod("alphabetsAndSpacesOnly", function (value, element) { return this.optional(element) || /^[a-zA-Z\s]+$/.test(value); }); $("FieldId").rules("add", { alphabetsAndSpacesOnly: true, messages: { alphabetsAndSpacesOnly: "Please enter a valid name." } }); 

El complemento jQuery Validate ya tiene una regla llamada lettersonly como parte del archivo additional-methods.js , que se ve así …

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

Agregar cdn

  rules:{ txtname:{required: true, lettersonly:true } 

Pruebe esto: ( Esta es una validación personalizada perfecta usando el validador de jquery )

 $(function() { $.validator.addMethod("alphabetsnspace", function(value, element) { return this.optional(element) || /^[a-zA-Z ]*$/.test(value); }); $("#add-employee").validate({ rules: { employee_surname: { required: true, alphabetsnspace: true }, employee_firstname: { required: true, alphabetsnspace: true }, employee_othername: { alphabetsnspace: true }, father_name: { required: true, alphabetsnspace: true }, mother_name: { required: true, alphabetsnspace: true }, spouse_name: { alphabetsnspace: true }, ssn: { number: true, }, phone_no: { number: true, }, phone_no2: { number: true, }, passport: { number: true, }, driving_license: { number: true, }, email: { email: true } }, messages: { "employee_surname":{ alphabetsnspace: "Please Enter Only Letters" }, "employee_firstname":{ alphabetsnspace: "Please Enter Only Letters" }, "employee_othername":{ alphabetsnspace: "Please Enter Only Letters" }, "father_name":{ alphabetsnspace: "Please Enter Only Letters" }, "mother_name":{ alphabetsnspace: "Please Enter Only Letters" }, "spouse_name":{ alphabetsnspace: "Please Enter Only Letters" }, } }); });