jQuery 在选项卡中验证仅适用于首次提交

标签 jquery jquery-validate jquery-tabs

我正在尝试解决需要隐藏在选项卡后面的表单字段的问题。

我已经设法让这一半工作,这样当您单击提交按钮任何必填+隐藏字段时,它将自动显示此选项卡。

但问题是当你: 1. 加载页面,单击“提交”,效果很好。 2. 返回第一个选项卡,再次单击“提交”,但没有任何反应。

http://jsfiddle.net/3xEch/

// Form validator
var theForms = $("form[method=post]:not(.noValidate)");
if (theForms.length){
    theForms.each(function(){
        var $dis = $(this);

        if($dis.hasClass("validateHidden")){
            jQuery.validator.setDefaults({
                ignore: ''
            });
        }

        validater = $dis.validate({
            errorPlacement: function(error, element) {
                var trigger = element.next('.ui-datepicker-trigger, .input-label');
                if(!trigger.length){ trigger = element.parent('label'); }
                var labelWidth = element.parent("p").not(".full").find("label").eq(0).width();
                error.insertAfter(trigger.length > 0 ? trigger : element)
                     .css("marginLeft", labelWidth);

                // Check if hidden inside tab
                if(element.parents(".tab").is(":hidden")){
                    var tabs = element.parents(".tabs");
                    tabs.find(".tab").hide();
                    var tab = $("#"+element.parents(".tab").attr("id"));
                    tab.show();
                    tabs.find(".tabmenu li").removeClass("selected");
                    tabs.find(".tabmenu li").eq(tab.index()-1).addClass("selected");
                }
            }
        });

        $('.tabs').bind('tabsselect', function(){
            validater.resetForm();
        });
    });
}

最佳答案

问题是由于 errorPlacement 对于每个经过验证的元素仅调用一次。

查看这个问题:jQuery Validation Plugin: Invoke errorPlacement function when onfocusout, keyup and click

他们建议使用 showErrors 方法进行任何重复验证。

关于jQuery 在选项卡中验证仅适用于首次提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193387/

相关文章:

jquery - 有 jQuery 插件更新管理器实用程序吗?

asp.net-mvc-3 - jQuery.validator.unobtrusive.adapters.addMinMax 往返,在 MVC3 中不起作用

javascript - 简单 jQuery 选项卡的问题

JQuery UI : How to get the selected tab to change color without loading jqueryui. CSS

javascript - 滚动到元素时创建导航淡入不同的颜色

javascript - 如何使用AngularJS实现这种悬停效果?

jquery验证错误: .验证不是函数

jquery - 翻译自定义 jQuery 验证消息

jquery-ui - 为什么我的 CSS3 媒体查询没有显示在移动设备上?

javascript - 使用 jQuery 过滤元素