validator validate minlength form example docs addmethod jquery jquery-validate

minlength - jquery-validate-addMethod-¿cómo aplicar una regla personalizada que haga referencia a dos cuadros de texto?



validate form jquery validate (1)

Estoy usando el complemento de validación de jQuery y quiero usar un método personalizado que tenga en cuenta dos valores ingresados ​​en dos cuadros de texto diferentes al decidir si la situación es válida.

Sé sobre el método de adición y he encontrado un ejemplo ...

jQuery.validator.addMethod("math", function(value, element, params) { return this.optional(element) || value == params[0] + params[1]; }, jQuery.format("Please enter the correct value for {0} + {1}"));

... ¿qué hace referencia a dos elementos pero no tengo claro cómo escribir una regla que haga uso de un método como este?

Para que sea más fácil discutir, imagínese que quiero usar este método de ejemplo y tengo un formulario que se parece a esto ...

<form id="TOTALSFORM" name="TOTALSFORM"> <label for="LHSOPERAND">Input 1</label> <br /> <input type="text" name="LHSOPERAND" id="LHSOPERAND" class="required" /> <br /> <label for="RHSOPERAND">End</label> <br /> <input type="text" name="RHSOPERAND" id="RHSOPERAND" class="required" /> <label for="TOTAL">End</label> <br /> <input type="text" name="TOTAL" id="TOTAL" class="required" /> </form>

Tengo otras reglas que aplico de esta manera:

$("#OPTREASON").rules("add", { required: true, min: 0, messages: { required: "Required input", min: "Please select a Reason" } });

¿Cómo puedo hacer algo similar para aplicar el ejemplo del método personalizado que se muestra para que ''TOTAL'' se verifique como la suma de ''LHSOPERAND'' y ''RHSOPERAND''?


Intente lo siguiente:

Crear la regla

jQuery.validator.addMethod("checkTotal",function(value) { total = parseFloat($(''#LHSOPERAND'').val()) + parseFloat($(''#RHSOPERAND'').val()); return total == parseFloat($(''#TOTAL'').val()); }, "Amounts do not add up!"); jQuery.validator.classRuleSettings.checkTotal = { checkTotal: true };

Entrada

<input type="text" name="TOTAL" id="TOTAL" class="required checkTotal" />

Validación inicial

$(document).ready(function() { $("#TOTALSFORM").validate(); });

Fiddle aquí: http://jsfiddle.net/wTMv3/