jquery-validate – addMethod – 如何应用引用两个文本框的自定义规则?

前端之家收集整理的这篇文章主要介绍了jquery-validate – addMethod – 如何应用引用两个文本框的自定义规则?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用 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}"));

…它引用了两个元素,但我不清楚如何编写一个可以利用这样的方法的规则?

为了更容易地讨论,想象我想使用这个例子的方法,我有一个看起来像这样的形式..

<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>

我有其他规则,我应用如下:

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

如何使用类似的应用示例自定义方法显示,以便将“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 };

输入

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

初始化验证

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

小提琴:http://jsfiddle.net/wTMv3/

原文链接:https://www.f2er.com/jquery/181718.html

猜你在找的jQuery相关文章