Bonjour à toutes et à tous,
Je dois faire quelque chose de banal, utiliser jquery pour comparer deux mots de passe (si les mots de passe sont égaux, le formulaire est envoyé)
Voici la condition :
if (!$("#pwd").val() === ("#pwd2").val())
ce sont deux champs type password, mais le formulaire est envoyé même s'il sont différents ????
Merci pour votre aide
au cas où je poste le formulaire complet
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Exemple</title>
<link rel="stylesheet" type="text/css" href="css.css" />
<script src="jquery.js"></script>
<script type="text/javascript">
$(function(){
$("#upload1").click(function(){
valid = true;
if ($("#nom").val() ==""){
$(".error-message-nom").show();
$(".error-message-avant-envois").show();
valid = false;
}else if(!$("#nom").val().match(/^[a-z]+$/i) && $("#nom").val() !=""){
$(".error-message-nom-valide").show();
$(".error-message-avant-envois").show();
valid = false;
}else{
$(".error-message-nom").hide();
}
if ($("#adresse").val() ==""){
$(".error-message-adresse").show();
$(".error-message-avant-envois").show();
valid = false;
}else{
$(".error-message-adresse").hide();
}
if ($("#email").val() ==""){
$(".error-message-email").show();
$(".error-message-avant-envois").show();
valid = false;
}else if(!$("#email").val().match(/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\.[a-zA-Z]{2,4}$/) && $("#email").val() !=""){
$(".error-message-email-valide").show();
$(".error-message-avant-envois").show();
valid = false;
}else{
$(".error-message-email").hide();
}
if ($("#cp1").val() =="" || $("#cp2").val() =="" || $("#cp3").val() ==""){
$(".error-message-cp1").show();
$(".error-message-avant-envois").show();
valid = false;
}else if(!$("#cp1").val().match(/^[0-9]{3}$/) && $("#cp1").val() !="" || !$("#cp2").val().match(/^[0-9]{3}$/) && $("#cp2").val() !="" || !$("#cp3").val().match(/^[0-9]{4}$/) && $("#cp3").val() !=""){
$(".error-message-cp1-valide").show();
$(".error-message-avant-envois").show();
valid = false;
}else{
$(".error-message-cp1").hide();
}
///^(http|https):\/\/([\w]*)\.([\w]*)\.(com|net|org|biz|info|mobi|us|ca|bz|name|co|quebec|fr)(\.[a-z]{1,3})?\z/i
if (!$("#url").val().match(/https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,}/) && $("#url").val() !=""){
$(".error-message-url-valide").show();
$(".error-message-avant-envois").show();
valid = false;
}else{
$(".error-message-url").hide();
}
if ($("#pwd").val() ==""){
$(".error-message-mdp-valide").show();
$(".error-message-avant-envois").show();
valid = false;
}else{
$(".error-message-mdp-valide").hide();
}
if ($("#pwd2").val() ==""){
$(".error-message-mdp2-valide").show();
$(".error-message-avant-envois").show();
valid = false;
}else{
$(".error-message-mdp2-valide").hide();
}
if (!$("#pwd").val() === ("#pwd2").val()){
$(".error-message-mdp2-nonvalide").show();
$(".error-message-avant-envois").show();
valid = false;
}else{
$(".error-message-mdp2-nonvalide").hide();
}
return valid;
});
});
</script>
</head>
<body>
<form name="formsuivi" action="compta.php" method="post">
Nom : <input type="text" name="nom" id="nom" class="form_annonce_nom_part" size="35" maxlength="35"><span class="error-message-nom" style="display: none;">Veuillez entrer votre nom</span><span class="error-message-nom-valide" style="display: none;">Veuillez entrer un nom valide</span>
</br>
</br>
Adresse : <input type="text" name="adresse" id="adresse" class="form_annonce_nom_part" size="35" maxlength="35"><span class="error-message-adresse" style="display: none;">Le champ adresse est vide</span>
</br>
</br>
Mail : <input type="email" name="email" id="email" class="form_annonce_nom_part" size="35" maxlength="35"><span class="error-message-email" style="display: none;">Le champ email est vide</span><span class="error-message-email-valide" style="display: none;">Veuillez entrer un email valide</span>
</br>
</br>
Code Postal : <input type="text" name="cp1" id="cp1" class="form_annonce_nom_part" size="4" maxlength="4"><input type="text" name="cp2" id="cp2" class="form_annonce_nom_part" size="4" maxlength="4"><input type="text" name="cp3" id="cp3" class="form_annonce_nom_part" size="4" maxlength="4"><span class="error-message-cp1" style="display: none;">Le numéro est vide</span><span class="error-message-cp1-valide" style="display: none;">Veuillez entrer un numéro valide</span>
</br>
</br>
Url : <input type="text" name="url" id="url" class="form_annonce_nom_part" size="100" maxlength="100"><span class="error-message-url-valide" style="display: none;">Adresse URL non valide</span>
</br>
</br>
pwd1 : <input type="password" name="pwd" id="pwd" class="form_annonce_nom_part" size="20" maxlength="20"><span class="error-message-mdp-valide" style="display: none;">Veuillez entrer votre mot de passe</span>
</br>
pwd2 : <input type="password" name="pwd2" id="pwd2" class="form_annonce_nom_part" size="20" maxlength="20"><span class="error-message-mdp2-valide" style="display: none;">Veuillez entrer votre mot de passe</span><span class="error-message-mdp2-nonvalide" style="display: none;">Les mots de passe ne sont pas identiques</span>
</br>
</br>
<div class="error-message-avant-envois" style="display: none;">Oups !</div>
<input type="submit" class="upload1" value="Créer mon compte" name="upload1" id="upload1"/>
</form>
</body>
</html>
ok bon j'ai essayé d'adapter et je n'ai pas su le faire fonctionner par contre j'ai adapté un autre bout de code et ça fonctionne donc je le donne au cas où quelqu'un en ai besoin...
jQuery(function(){
$("#upload1").click(function(){
$(".error").hide();
var hasError = false;
var passwordVal = $("#pwd").val();
var checkVal = $("#pwd2").val();
if (passwordVal == '') {
$("#pwd").after('<span class="error">Please enter a password.</span>');
hasError = true;
} else if (checkVal == '') {
$("#pwd2").after('<span class="error">Please re-enter your password.</span>');
hasError = true;
} else if (passwordVal != checkVal ) {
$("#pwd2").after('<span class="error">Passwords do not match.</span>');
hasError = true;
}
if(hasError == true) {return false;}
});
});
Merci infiniment betaWeb et Benjamin Derepas pour votre aide
Salut
Ligne 84 tu as oublié
$
il faut que tu mettes
if (!$("#pwd").val() === $("#pwd2").val()){
Merci kanah
Bien vu cependant, le formulaire est envoyé même avec des mots de passe différents
tu ecoute l'evenement click et tu return simplement le resultat.
tu devrais plutot ecouter le "submit" et bloquer l'envois
Heum oui mais ça ne testera pas l'égualité, d'écouter le submit C'est ça que je vois pas en fait ??
Bien sur quer si, mais il te faut attacher l'event !
JS
document.querySelector('#mon_form').addEventListener('submit', function(e) {
if (document.getElementById('pwd').value !== document.getElementById('pwd2').value) {
alert('Attention, le mot de passe de confirmation est différent du mot de passe !');
e.preventDefault();
return false;
}
}, false);
jQuery:
$('#mon_form').submit(function(e) {
if ($('#pwd').val() !== $('#pwd2').val()) {
alert('Attention, le mot de passe de confirmation est différent du mot de passe !');
e.preventDefault();
return false;
}
});