2010-03-19 39 views

Respuesta

36

sólo tiene que añadir un validador personalizado, y utilizar de esta manera:

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

Sólo los números:

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

Sólo letras

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

aceptar es un método nativo para validar la extensión de archivo. http://docs.jquery.com/Plugins/Validation/Methods/accept#extension –

+2

¿No debería el '.' ser un'^'? –

+0

Por cierto, crear una nueva regla es innecesario ya que el complemento ya tiene una regla llamada 'lettersonly' como parte de [el archivo' additional-methods.js'] (https://cdnjs.cloudflare.com/ajax/libs /jquery-validate/1.15.0/additional-methods.js). – Sparky

18

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".

0

Trate 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.", ""]; 
     } 
4

uso por debajo de código en el 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]$" }) 
0

El siguiente método para añadir un validador personalizado funciona bien, pero la validación sucede en keyup, tanto el error sigue apareciendo mientras el usuario está escribiendo el texto.

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

El siguiente método funciona bien para los alfabetos y los 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." } 
    }); 
0

El plugin jQuery Validar ya ha pedido una regla lettersonly como parte de the additional-methods.js file, que se parece a esto ...

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

Añadir cdn

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/additional-methods.js"></script> 
rules:{ 
    txtname:{required: true, 
      lettersonly:true 
      } 
0

Try Esto: (Esta es una validación personalizada perfecta usando jquery validador)

$(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" 
       }, 
      } 
    }); 
}); 
Cuestiones relacionadas