Se puede realizar validaciones personalizadas de 3 formas distintas, dependiendo de sus necesidades:
Se puede usar la clave de validación “regexp” para realizar validaciones personalizadas en base a una expresión regular especificada y las flags (se especifican por separado), deben estar en forma de cadenas (para usarse con el constructor del objeto RegExp):
<input name="user" required data-dj-validator="regexp,^[aeiou]+$,i">
Si la expresión regular lleva comas (caracter reservado), estas se deben reemplazar por el caracter °(grado) para evitar errores:
<input name="user" required data-dj-validator="regexp,^[aeiou]{3°5}$,i">
La clave de validación call permite realizar la validación ejecutando una función definida por el usuario, esta función recibe el campo a validar y debe retornar true o false:
<input name="textinput" type="text" data-dj-validator="call,isUpperCase">
Siendo la función del usuario:
function isUpperCase($field){
value=$field.val();
if(value==value.toUpperCase())return true;
else return false;
}
La función global addDjvalidator permite agregar una nueva clave de validación personalizada dentro del plugin:
$.addDjvalidator(key_name,message,callback);
Donde:
key_name: Es la clave de validación que se creará
message: Es el mensaje de validación que se utilizará
callback: La función de validación a ejecutar, recibe 2 parámetros, el campo a validar “field” y los parámetros “params”, estos parámetros son un array que comienza en 1, puesto que el 0 es la clave de validación.
Ejemplo:
Creamos el validador “even”, que validara si el número introducido es par, además con un parámetro para que no sobrepase un valor máximo:
$.fn.djValidator.add('even','only even numbers.',
function($field,params){
value=parseInt($field.val());
max= params[1];
if(value%2!=1||value>max)return false;
else return true;
}
);
Luego se puede utilizar como cualquier otro validador del plugin:
<input type="text" data-dj-validator="even,10" required>