2011-02-04 25 views
12

Estoy usando el complemento jQuery Validation.Validación de jQuery: sobrescritura del método de validación central

he sobrescrito la norma requerida ya que la mía depende de alguna condición de encargo como en lo siguiente:

$.validator.addMethod("required", function(value, element) { 
    console.log("required", element); 

    return someCondition && value != null; 
}, "This is is required."); 

Cuando el formulario se valida sin embargo, veo que "required" se imprime dos veces para cada elemento que significa la función se llama dos veces. Tan pronto como cambie el nombre del método a "myRequired" y agregue la siguiente regla de clase, la función se llama solo una vez como debería ser.

$.validator.addClassRules({ 
    required : { 
     myRequired: true 
    } 
}); 

Parece que el método requerido núcleo está todavía intacto y llamado incluso si agrego un método con el mismo nombre. ¿Hay alguna forma de sobreescribir completamente el método de la regla central?

+1

Qué plugin de validación está usando. – Hussein

+0

Estoy usando el complemento jQuery Validation. –

+0

Tom, los enlaces son siempre útiles, hay muchos complementos "jQuery Validation". Sin embargo, supongo que estás usando este? http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – Blowsie

Respuesta

18

No lo reemplaza, sino que le agrega otro método. Para anularlo, intente esto:

$.validator.methods.required = function(value, element, param) { 
    console.log("required", element); 

    return someCondition && value != null; 
} 
1

Usted puede utilizar $.extend para hacer esto:

$.extend($.validator, { 
    required: function(value, element) { 
     console.log("required", element); 
     return someCondition && value != null; 
    } 
}) 
Cuestiones relacionadas