我有一个表单,允许用户将用户名重新发送到列出的电子邮件地址。它还有两个输入字段,用于新电子邮件和新电子邮件确认。我们的想法是,如果列出的地址不好,可以输入并确认新的电子邮件地址。提交表单后,电子邮件将发送到新地址。如果两个新地址字段都留空,则电子邮件将转到列出的地址。我有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;然后它被完全忽略了。