如果未显示字段,则jQuery验证程序不起作用

时间:2012-02-23 17:33:54

标签: jquery wordpress jquery-validate

全部, 我正在使用Wordpress,我正在使用一些短代码来显示切换功能。我正在使用的主题是Mingle,可在此处找到切换功能的示例:

http://themeforest.net/item/mingle-multipurpose-wordpress-theme/full_screen_preview/235056

您可以点击Shortcodes - >标签和切换

这很完美,我有一个带有一些字段的表格。如果切换打开,那么jQuery Validator工作正常。但是,如果切换关闭,jQuery不会重新确认其中有字段,并且不会检查它们是否有值。有解决方法吗?

编辑:这是我目前的jQuery:

$("#register").validate({
    ignore: "",
    rules: {
        vendor_email: {
            required: true,
            email: true
        },
        vendor_name: "required",
        zip: "required",
    },
    messages: {
        vendor_email: {
            required: "<br>Please enter an email address!<br><br>",
            email: "<br>Please enter a valid email address!<br><br>"
        },
        vendor_name: "<br>Please enter your vendor name!<br><br>",
        zip: "<br>Please enter a zip code!<br><br>",
    },
    highlight: function(element, errorClass) {
        alert(element);
        $(element).closest('togDesc').show();
        $(element).closest('toggleItem').find('.minus').removeClass('minus').addClass('plus');
    });
});

突出显示部分导致错误,无需验证任何内容。知道为什么吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

默认情况下,jQuery验证会忽略隐藏字段。将ignore更改为empty:

$("#form").validate({
    ignore: "",
    ...
});

如果隐藏了这些元素,您可能希望以编程方式切换其父元素:

$("#form").validate({
    ignore: "",
    highlight: function(element, errorClass) {
        $(element).addClass(errorClass);
        if(!$(element).is(":visible")) {
            $(element).closest('togDesc').show();
            $(element).closest('toggleItem').find('.minus').removeClass('minus').addClass('plus');
        }
    });
}

可能有一个内置函数可以在混合中切换它,但是这也应该这样做。