jquery验证()问题

jquery验证()问题,jquery,validation,Jquery,Validation,我经常使用validate插件,它很棒。 我当前的设置是修复“关闭”框,其中包含字段。 我想做的是,如果框中包含未填充的必填字段,则在尝试提交时应打开这些框 这是我的代码: $("#ftblSubGroupsadd").validate({ invalidHandler: function(form, validator) { alert('Note, a few mandatory fields remain un-answered. You may have to o

我经常使用validate插件,它很棒。 我当前的设置是修复“关闭”框,其中包含字段。 我想做的是,如果框中包含未填充的必填字段,则在尝试提交时应打开这些框

这是我的代码:

$("#ftblSubGroupsadd").validate({
    invalidHandler: function(form, validator) {
        alert('Note, a few mandatory fields remain un-answered. You may have to open some closed boxes');
        $("label.error").closest("div[class=inside]").css("display","block");
        $("label.error").closest("div.boxed").removeClass().addClass('box');
    }
  });
这是一个在线演示

奇怪的是,当你第一次尝试submkit时,你得到的只是警报()。 但是,如果您立即再次单击submit,您将收到警报(),只有到那时,open/show代码才会起作用,框才会打开

有人能帮我解释一下为什么会这样吗


谢谢

我认为问题在于类label.error是在代码执行后添加的:这就是为什么它第一次运行不正确,第二次运行正常的原因

编辑-我找到了一个解决方案(我认为):


看看小提琴:

我认为问题在于类label.error是在代码执行后添加的:这就是为什么它第一次运行不正确,第二次运行正常的原因

编辑-我找到了一个解决方案(我认为):


看看小提琴:

好的,有人在另一个列表上帮助我,这段代码似乎有效:

$("#ftblSubGroupsadd").validate({
    showErrors: function(){
        this.defaultShowErrors();
        //alert('Note, a few mandatory fields remain un-answered. You may have to open some closed boxes');
        $("label.error").closest("div[class=inside]").css("display","block");
        $("label.error").closest("div.boxed").removeClass().addClass('box');
    }
  });

好的,有人在另一个列表上帮助了我,这段代码似乎有效:

$("#ftblSubGroupsadd").validate({
    showErrors: function(){
        this.defaultShowErrors();
        //alert('Note, a few mandatory fields remain un-answered. You may have to open some closed boxes');
        $("label.error").closest("div[class=inside]").css("display","block");
        $("label.error").closest("div.boxed").removeClass().addClass('box');
    }
  });

不要使用
.removeClass()
来删除
错误
类,如果出现错误,必须停止该类。改为使用
.removeClass(validClass).addClass(errorClass)不要使用
.removeClass()
来删除
错误
类,如果出现错误,必须停止该类。改为使用
.removeClass(validClass).addClass(errorClass)嗯。。。有趣的尼古拉。有什么样的live()方法可以用来克服这个问题吗?如果你明天早上在jsfiddle.net上发布你的代码,我会看看一些解决方案,现在我在手机上!)谢谢,我很感激。这是我第一次在那里发帖,希望一切顺利。URL是:我更新了我的答案和你的小提琴:好的-我刚刚看到这个,在我发布了另一个解决方案之后。你的似乎也能做到这一点。非常感谢!!嗯。。。有趣的尼古拉。有什么样的live()方法可以用来克服这个问题吗?如果你明天早上在jsfiddle.net上发布你的代码,我会看看一些解决方案,现在我在手机上!)谢谢,我很感激。这是我第一次在那里发帖,希望一切顺利。URL是:我更新了我的答案和你的小提琴:好的-我刚刚看到这个,在我发布了另一个解决方案之后。你的似乎也能做到这一点。非常感谢!!