J'ai un champ dans lequel un utilisateur peut soumettre plusieurs e-mails délimités par une virgule. Je veux la validation JS pour obtenir deux choses:La validation d'e-mail JS soumet toujours des e-mails non valides
- Si l'utilisateur tente de rien soumettre, ils obtiennent une alerte qu'ils doivent entrer dans un e-mail, cela fonctionne
- Si l'utilisateur tente d'envoyer un certain nombre d'e-mails où un e-mail est correctement formaté, ils obtiennent une alerte qu'un email a été mal formaté, et ils doivent soumettre à nouveau, ce NE FONCTIONNE PAS
Qu'est-ce qui se passe aveC# 2 est que si je soumets quelque chose de faux comme asddf
comme un e-mail , I:
- Recevez l'alerte!
- Cependant, le formulaire est encore soumis, BOO
code:
$("#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;
}
});
}
});
Pour le second cas, vous ne bloquez pas le comportement par défaut de l'événement 'click' dans le cas d'un e-mail valide. –
t.niese a raison. Ajoutez 'e' comme argument à la fonction de clic anonyme. Dans votre code, utilisez 'e.preventDefault()' au lieu de 'return false'. Lisez les documents: http://api.jquery.com/event.preventdefault/ – Bjorn
@Bjorn ce n'est pas correct, 'return false' inclut' e.preventDefault() 'par ce post: http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false. Et j'ai déjà essayé cette solution, cela ne fonctionnait pas – james