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的验证.