我使用
jQuery validation plugin,我想使用一个自定义方法,在决定情况是否有效时,将两个值输入两个不同的文本框。
我知道add method,我找到了一个例子…
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}"));@H_403_5@…它引用了两个元素,但我不清楚如何编写一个可以利用这样的方法的规则?
为了更容易地讨论,想象我想使用这个例子的方法,我有一个看起来像这样的形式..
<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>@H_403_5@我有其他规则,我应用如下:
$("#OPTREASON").rules("add",{ required: true,min: 0,messages: { required: "required input",min: "Please select a Reason" } });@H_403_5@如何使用类似的应用示例自定义方法显示,以便将“TOTAL”作为“LHSOPERAND”和“RHSOPERAND”的总和进行检查。
解决方法
尝试以下:
创建规则
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 };@H_403_5@输入
<input type="text" name="TOTAL" id="TOTAL" class="required checkTotal" />@H_403_5@初始化验证
$(document).ready(function() { $("#TOTALSFORM").validate(); });@H_403_5@