respuesta de Nick encaja a la perfección. Necesitaba comparar dos campos en el formulario y asegurarme de que no fueran iguales. Lo modifiqué solo un poco.
jQuery.validator.addMethod("notEqual", function(value, element, param) {
return this.optional(element) || value != $(param).val();
}, "This has to be different...");
$("#cform").validate(
{
rules: {
referringsales: { required: false, notEqual: "#salesperson" }
}
});
Editado para responder a un comentario:
Si usted tiene más de una serie de menús desplegables para comparar, el método también funciona con ese caso.
jQuery.validator.addMethod("notEqual", function(value, element, param) {
return this.optional(element) || value != $(param).val();
}, "This has to be different...");
$("#cform").validate(
{
rules: {
referringsales: { required: false, notEqual: "#salesperson" }
DropDown2: { required: false, notEqual: "#SecondBase" }
}
});
Si la pregunta se refiere a la comparación de referringsales contra 2 bases diferentes (digamos #initialContact y #salesperson), entonces simplemente añadir que la regla de la lista.
referringsales: { required: false, notEqual: "#salesperson", notEqual: "#initialContact" }
cualquier posibilidad de lo que es sensible a las mayúsculas? – compguy24
@ compguy24 Eso sería 'return this.optional (element) || value.toLowerCase()! = param.toLowerCase(); 'en el' addMethod' – Isaiah
¡Gracias por la explicación! ¡Nunca entendí cómo funcionó hasta hoy! ¡Aclamaciones! – Matias