jQuery-验证-addMethod-如何应用自定义规则引用两个文本框?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (26)

我用的是jQuery验证插件 我想要使用一个自定义方法,它在决定情况是否有效时,会考虑两个输入到两个不同文本框中的值。

我找到了一个例子

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

init验证

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

扫码关注云+社区

领取腾讯云代金券