jquery validate - 在提交时忽略空白字段

时间:2014-04-24 15:32:44

标签: jquery jquery-validate

我有一个表单,允许用户将用户名重新发送到列出的电子邮件地址。它还有两个输入字段,用于新电子邮件和新电子邮件确认。我们的想法是,如果列出的地址不好,可以输入并确认新的电子邮件地址。提交表单后,电子邮件将发送到新地址。如果两个新地址字段都留空,则电子邮件将转到列出的地址。我有jquery.validate检查,以确保电子邮件确认===电子邮件,但如果他们提交空白我得到我的验证CSS显示,因为空白电子邮件确认字段匹配空白电子邮件字段。

我有一个onblur()" ignoreifblank"这个规则涵盖了通过字段的标签,但如果覆盖表单的空白也提交,我需要真正忽略。

$(document).ready(function () {
function preload(arrayOfImages) {
    $(arrayOfImages).each(function () {
        $('<img/>')[0].src = this;
    });
}
preload(['https://url.to.images/tick-green.png']);

$('.ignoreifblank').blur(function () {
    if ($(this).val() === "") {
        $(this).parent().removeClass("success error");
        $(this).next('label').css('display', 'none');
        $(this).next('label').remove();
        $('#result').html('');
    }
});
$("#jqvForm").validate({
    ignore: ".ignore",
    onkeyup: false,
    onfocusout: function (element) {
        if ($(element).hasClass('optional')) {
            return false;
        } else {
            $(element).valid();
        }
    },
    highlight: function (label) {
        $(label).closest('.form-element').addClass('error')
            .closest('.form-element').removeClass('success');
        $('#result').html(''); 
    },
    success: function (label) {
        label.text('OK!').addClass('valid')
            .closest('.form-element').addClass('success');
    },
    rules: {
        new_email: {
            required: false,
            email: true,
            maxlength: 50
        },
        new_email_v: {
            equalTo: "#new_email"
        },
    },
    messages: {
        new_email: {
            email: "E-mail address does not appear to be valid.",
            maxlength: "Maximum length is 50 characters."
        },
        new_email_v: {
            equalTo: "E-mail addresses do not match."
        },
    }
});

验证css和绿色勾号仅在提交表单时出现一秒钟,但我认为那里必须有更好的方式。如果我使用class =&#34;忽略&#34;然后它被完全忽略了。

这是小提琴 - http://jsfiddle.net/stevelogan/W3gWn/

0 个答案:

没有答案