jQuery验证和组 - 当第二个字段值正确时无法正常工作?

时间:2012-03-13 20:04:54

标签: jquery jquery-validate

我有一些字段,它们是组的一部分 - demo。 当用户在我的演示中的第一个字段(数字(1到10))中输入错误数据时,会显示错误消息。但是,当用户在第二个字段(数字(11到20))中输入正确的数据时,如果组中的一个字段仍包含不正确的数据,则此消息将消失。此外,删除了错误类(这在演示中不可见)。

我该如何纠正?

2 个答案:

答案 0 :(得分:1)

这是一个众所周知的事实,这个问题与jQuery验证组有关。

我的解决方案很简单。

首先,您需要将相同的类添加到组中的所有输入中:

<input id="firstInGroup" class="groupBug">
<input id="secondInGroup" class="groupBug">
<input id="thirdInGroup" class="groupBug">

然后,您为该类创建一个触发器

    $('.groupBug').change(function(){
    if($(this).siblings().valid()){
        //all items of the group are valid, do nothing or manually add valid class
    }else{
        //add the error class to the parent div, or whatever you want for the error
    }    

它为我提供了几个选择。

答案 1 :(得分:0)

您想要的验证不需要是分组的......

您的代码发生的情况是,当您对验证进行分组时,只会创建一个错误元素,并且由于验证发生在默认情况下,onfocusout或onkeyup,每个具有不同于'required'规则的元素都会在这些元素上进行测试事件

因此,当验证测试第一个字段并发现错误时,它会显示消息,但是当验证测试第二个字段并且这是正确的时,它会删除错误消息。

您需要的是从这些字段中删除组,因为它们不是组验证,或者从焦点或键盘事件开始取消验证