有没有办法将动态参数传递到自定义
jquery验证方法中?具体来说,我正在寻找一种方法来比较2个控件,并希望通过一个对方的验证方法进行比较.
这是我目前拥有的
//Add method $.validator.addMethod("lowerInt",function(value,element,params) { alert('inside method'); if (isNaN(parseInt(params))) return true; else return parseInt(value) < parseInt(params); },$.validator.format("Please enter a number smaller than {0}")); //Set validation $("#form1").validate({ rules: { lowInt: { required: true,integer: true,lowerInt: 8 //I would like to pass a dynamic value here } } });
如果我按照上面的方式运行它,它应该是正常的.如果我将8个传递给lowerInt更改为$(‘#highInt’).val(),似乎将lowerInt函数的值设置为一次,并且不会更新它.我知道我可以通过调用$(‘#highInt’)val()来获取方法中的值,但是如果可能的话我想传递该值.
解决方法
我会通过一个选择器,像这样:
//Add method $.validator.addMethod("lowerInt",params) { var hi = typeof params[0] == "string" ? parseInt($(params[0]).val(),10) : params[0]; if (isNaN(hi)) return true; else return parseInt(value) < hi; },$.validator.format("Please enter a number smaller than {0}")); //Set validation $("#form1").validate({ rules: { lowInt: { required: true,lowerInt: '#highInt' } } });
该版本将采用数字或选择器,使其尽可能灵活.