当其中一个字段发生更改时,我在重新验证字段时遇到了一些问题。更具体地说,假设您必须处理总和不能超过 100 的任意数量的字段(用户可以添加新闻或删除现有的新闻)。
我现在正在做的是:
//This basically works on change of the input
$.validator.addMethod('inputBox', checkAmount, 'Value exceeds maximum quantity');
function checkAmount(value, element) {
if (sumAmounts() <= 100) {
return true;
}
return false;
}
下面是它的工作原理,假设我们有 2 个输入框: - 我在第一个输入框中放了 80 - 我在第二个中放了 30 - 第二个变成红色并显示错误“值超过最大数量”<-很好我!- 我按下提交:两者都变成红色并显示错误<-对我来说很好!- 我编辑了两者中的一个(哪个没有区别)以符合验证规则 - 编辑后的一个变得有效,但另一个仍然显示错误(但我可以提交)<- 这就是问题所在!
当我更改其中一个并且它们的值的总和小于 100 时,我希望所有的框都变得“有效”。
在返回 true 或 false 之前,我尝试在 checkAmount() 函数中插入以下方法: $('inputBox').validate() / .valid(); / 。改变(); / $('form').validate(); / 甚至 $('inputBox').focus(); 可以工作但会经历无限循环xD
有什么建议吗?