jQuery验证不到

Joh*_*ley 8 jquery jquery-validate

我正在尝试为jQuery编写一个"Less than"验证器.我想比较一个文本框和另一个文本框,所以如果我有:

<input type="text" id="value1" /> <input type="text" id="value2" />
Run Code Online (Sandbox Code Playgroud)

我希望我的验证器看起来像

$('#myForm').validate({rules: { value1: { lessThan: "#value2" } } });
Run Code Online (Sandbox Code Playgroud)

我试过这个,但我不能让它工作:

$.validator.addMethod('lessThan', function(value, element, param) {
    var i = parseInt(value);
    var j = parseInt($(param).val());
    return i >= j;
}, "Less Than");
Run Code Online (Sandbox Code Playgroud)

另一个问题是我应该在哪里放置该代码?在$(document).ready或只是在标签中?

Joh*_*ley 15

我是个白痴.我在我的实际代码中做了一些拼写错误,我搞砸了我在很多验证器方法中看到的this.optional(元素).这是工作功能:

$.validator.addMethod('lessThanEqual', function(value, element, param) {
    if (this.optional(element)) return true;
    var i = parseInt(value);
    var j = parseInt($(param).val());
    return i <= j;
}, "The value {0} must be less than {1}");
Run Code Online (Sandbox Code Playgroud)

这是精简版

$.validator.addMethod('lessThanEqual', function(value, element, param) {
    return this.optional(element) || parseInt(value) <= parseInt($(param).val());
}, "The value {0} must be less than {1}");
Run Code Online (Sandbox Code Playgroud)

现在我需要弄清楚当我更改field2时如何重新运行字段1的验证.