JQuery : Formulaire qui s'envoit tout seul

Fermé
Darius - 30 déc. 2010 à 18:18
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 30 déc. 2010 à 19:58
Bonjour à tous.
J'ai codé la vérification d'un formulaire d'inscription avec JQUERY :

$(function(){
$("#inscription").submit(function(){

valid = true;

// Pour le pseudo
if($("#pseudo2").val() == ""){
$("#pseudo2").next(".error-input").fadeIn().text("Veuillez entrer votre pseudo.");
valid = false;
}
else if(!$("#pseudo2").val().match(/^[a-z0-9A-Z._-]+$/)) {
$("#pseudo2").next(".error-input").fadeIn().text("Le pseudo n'est pas au format valide.");
valid = false;
}
else
{
$("#pseudo2").next(".error-input").fadeOut();
}

if($("#pseudo2").val().length > 40){
$("#pseudo2").next(".error-input").fadeIn().text("La taille du pseudo doit être comprise entre 2 et 40 caractères.");
valid = false;
}

if($("#pseudo2").val().length < 2){
$("#pseudo2").next(".error-input").fadeIn().text("La taille du pseudo doit être comprise entre 2 et 40 caractères.");
valid = false;
}

// Pour le mot de passe
if($("#password2").val() == ""){
$("#password2").next(".error-input").fadeIn().text("Veuillez entrer votre mot de passe.");
valid = false;
}
else if(!$("#password2").val().match(/^[a-z0-9A-Z._-]+$/)) {
$("#password2").next(".error-input").fadeIn().text("Le mot de passe n'est pas au format valide.");
valid = false;
}
else
{
$("#password2").next(".error-input").fadeOut();
}

if($("#password2").val().length > 40){
$("#password2").next(".error-input").fadeIn().text("La taille du mot de passe doit être comprise entre 2 et 40 caractères.");
valid = false;
}

if($("#password2").val().length < 2){
$("#password2").next(".error-input").fadeIn().text("La taille du mot de passe doit être comprise entre 2 et 40 caractères.");
valid = false;
}

// Pour la confirmation
if($("#confirmation").val() == ""){
$("#confirmation").next(".error-input").fadeIn().text("Veuillez entrer la confirmation de mot de passe.");
valid = false;
}
else if(!$("#confirmation").val().match(/^[a-z0-9A-Z._-]+$/)) {
$("#confirmation").next(".error-input").fadeIn().text("La confirmation du mot de passe n'est pas au format valide.");
valid = false;
}
else
{
$("#confirmation").next(".error-input").fadeOut();
}

if($("#confirmation").val() != $("#password2").val()) {
$("#confirmation").next(".error-input").fadeIn().text("Le mot de passe de confirmation doit être identique au mot de passe.");
valid = false;
}

// Pour l'email'
if($("#email").val() == ""){
$("#email").next(".error-input").fadeIn().text("Veuillez entrer un email.");
valid = false;
}
else if(!$("#email").val().match(/^[a-z0-9A-Z._-@]+$/)) {
$("#email").next(".error-input").fadeIn().text("L'email n'est pas au format valide.");
valid = false;
}
else
{
$("#email").next(".error-input").fadeOut();
}

// Pour le captcha
if($("#captcha").val() == ""){
$("#captcha").next(".error-input").fadeIn().text("Veuillez entrer le code de confirmation.");
valid = false;
}
else if(!$("#captcha").val().match(/^[0-9]+$/)) {
$("#captcha").next(".error-input").fadeIn().text("Le code de confirmation est seulement composé de chiffres.");
valid = false;
}
else
{
$("#confirmation").next(".error-input").fadeOut();
}

return valid;
});
});


Le problème étant que dès que j'entre un email qui n'est pas entrée dans la BDD ou alors qui n'est même pas au format valide, ça valide le formulaire et ça enregistre le membre alors que ça ne devrait pas.

J'ai beau regardé, je ne vois pas l'erreur.

Merci...

1 réponse

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 500
30 déc. 2010 à 19:58
Salut.

Si tu ferais une validation côté serveur (PHP), tu n'aurais pas ce problème.
Même quand le problème sera résolu, il suffira de désactiver le Javascript et on pourra mettre n'importe quoi dans les champs.

Pour le problème, ça serait bien si tu plaçais le code dans la balise prévue à cet effet pour ne pas perdre l'indentation. Et on pourrait avoir besoin du code HTML correspondant.
0