我有一些字段,它们是组的一部分 - demo。 当用户在我的演示中的第一个字段(数字(1到10))中输入错误数据时,会显示错误消息。但是,当用户在第二个字段(数字(11到20))中输入正确的数据时,如果组中的一个字段仍包含不正确的数据,则此消息将消失。此外,删除了错误类(这在演示中不可见)。
我该如何纠正?
答案 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'规则的元素都会在这些元素上进行测试事件
因此,当验证测试第一个字段并发现错误时,它会显示消息,但是当验证测试第二个字段并且这是正确的时,它会删除错误消息。
您需要的是从这些字段中删除组,因为它们不是组验证,或者从焦点或键盘事件开始取消验证