jquery validate() issue



我经常使用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');
    }
  });

,这是一个在线演示。

奇怪的是,当您第一次尝试subkit时,您得到的只是alert()。但是如果你马上再次点击提交,你会得到alert(),只有这样,打开/显示代码功能,然后盒子打开。

谁能告诉我为什么会这样?

谢谢!

我认为问题在于类标签。错误在你的代码执行后被添加:这就是为什么第一次不能正常运行而第二次可以正常运行的原因。

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

$("#ftblSubGroupsadd").validate({
    invalidHandler: function(form, validator) {
        alert('Note, a few mandatory fields remain un-answered. You may have to open some closed boxes');
        $.each(validator.currentElements, function(i, el){
            if(! validator.element(el)){
                $(el).closest("div[class=inside]").css("display", "block");
                $(el).closest("div.boxed").removeClass().addClass('box');
            }
        });
    }
});

看小提琴:http://jsfiddle.net/nicolapeluchetti/3Vw4y/4/

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

$("#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');
    }
  });

最新更新