Javascript JS电子邮件验证仍提交无效电子邮件
我有一个字段,用户可以提交多封以逗号分隔的电子邮件。我希望JS验证能够实现两件事: 如果用户尝试不提交任何内容,他们会收到一个警报,提示他们必须输入电子邮件,这是有效的 如果用户试图提交任意数量的电子邮件,其中一封电子邮件的格式不正确,他们会收到一个警报,提示其中一封电子邮件的格式不正确,并且他们必须重新提交,但这不起作用 2的情况是,如果我以电子邮件的形式提交类似asddf的虚假内容,我: 一定要保持警惕耶! 但是,表单仍然会被提交,BOO 代码: 以美元计算的回报率。每个。。。正在从内部函数返回。您需要一种从外部函数返回false的方法。像这样的Javascript JS电子邮件验证仍提交无效电子邮件,javascript,jquery,validation,email-validation,Javascript,Jquery,Validation,Email Validation,我有一个字段,用户可以提交多封以逗号分隔的电子邮件。我希望JS验证能够实现两件事: 如果用户尝试不提交任何内容,他们会收到一个警报,提示他们必须输入电子邮件,这是有效的 如果用户试图提交任意数量的电子邮件,其中一封电子邮件的格式不正确,他们会收到一个警报,提示其中一封电子邮件的格式不正确,并且他们必须重新提交,但这不起作用 2的情况是,如果我以电子邮件的形式提交类似asddf的虚假内容,我: 一定要保持警惕耶! 但是,表单仍然会被提交,BOO 代码: 以美元计算的回报率。每个。。。正在从内部函数
对于第二种情况,如果电子邮件无效,您不会阻止click事件的默认行为。t.niese是正确的。将e作为参数添加到匿名单击函数中。然后在代码中,使用e.preventDefault而不是returnfalse。阅读文档:@Bjorn这不对,返回false包括e.preventDefault每个帖子:。我已经试过这个方法了,不是吗work@james:Bjorn没有说从回调方法返回false不包括preventDefault,但是当您将return false放在迭代回调中时,它没有取消那里的事件的意义。您要么需要像hair raisin suggest那样将return语句从迭代回调中移出,要么需要使用preventDefault,两者的工作原理相同。如果e.preventDefault不起作用,那么很可能是您做错了什么,或者您还需要添加e.stopPropagation。
$("#refer").click(function() {
var input_emails = $('#friend_emails').val();
if (input_emails === "") {
alert("Please enter at least one friend's email to send invites")
return false;
} else {
var parsed_emails = input_emails.split(',');
$.each(parsed_emails, function( index, email_value ) {
var trimmed_email = $.trim(email_value)
var atpos = trimmed_email.indexOf("@");
var dotpos = trimmed_email.lastIndexOf(".");
if (atpos< 1 || dotpos<atpos+2 || dotpos+2>=trimmed_email.length) {
alert(trimmed_email + " " + "is not a valid email format, please correct and resubmit");
return false;
}
});
}
});
$("#refer").click(function() {
var input_emails = $('#friend_emails').val();
if (input_emails === "") {
alert("Please enter at least one friend's email to send invites")
return false;
} else {
var success = true;
var parsed_emails = input_emails.split(',');
$.each(parsed_emails, function( index, email_value ) {
var trimmed_email = $.trim(email_value)
var atpos = trimmed_email.indexOf("@");
var dotpos = trimmed_email.lastIndexOf(".");
if (atpos< 1 || dotpos=trimmed_email.length) {
alert(trimmed_email + " " + "is not a valid email format, please correct and resubmit");
success = false;
}
});
return success;
}});