Bonjour a tous,
Je viens ici car j'ai besoin d'aide sur mon site. je suis pas une brute en jquery et je suis bloqué :s
J'utilise une modal box en jquery nommé superbox : http://pierrebertet.net/projects/jquery_superbox/francais.html
Je l'utilise pour mon form d'inscription et pour mon form de login. Sur mes deux formulaires j'ai ajouté une vérification ajax sur le pseudo et le mail (pour l'inscription) et sur le mail (pour la fenêtre de login)
Tout se passe bien pour ma fenêtre d'inscription en revanche pour la fenêtre de login, j'ai un problème :
Lorsque j'ouvre la box, je teste mon ajax et mes erreurs en js tout est ok, mais des que je veux valider mon formulaire la box reste affiché et ne passe pas à l'étape suivante (page en php appeler dans mon form html)
Pour info j'ai vérifié les retour du php qui est appelé en ajax et il fonctionne correctement
ci-dessous le code js pour appeler la superbox
[code]
<script type="text/javascript">
$(function () {
$.superbox.settings = {
closeTxt :"Fermer X",
boxWidth :"300", // Largeur par défaut de la box
boxHeight:"235px"
};
$.superbox();
});
</script>
[/code]
ci-dessous le code js de verif sur ma box d'inscription (script qui fonctionne)
[code]
<script type="text/javascript">
$(function () {
$('.signup-form').live('submit', function () {
// validate signup form on keyup and submit
var $form = $(this);
var pseudo = $form.find('#pseudo').val();
var sEmail = $form.find('#mail').val();
var sEmail_verif = $form.find('#mail_verif').val();
var mdp = $form.find('#mdp').val();
var mdp_verif = $form.find('#mdp_verif').val();
if (pseudo.length < 5) {
$form.find('.alert.pseudo').fadeIn().text('Pseudo trop court ou non saisi.');
return false;
}
else {
//todo en prod rajouter un / dans url devant template_php
$form.find('.alert.pseudo').fadeOut();
$.ajax({
type :"POST",
url :"template_php/function/registerVerifPseudo.php",
data :"pseudo=" + $form.find("#pseudo").val(), // données à transmettre
success:function (msg) {
if (msg == 0) {
$form.find('.alert.pseudo').fadeIn().text('Pseudo déjà utilisé');
return false;
// on affiche l'erreur pseudo deja entrée
}
else {
$form.find('.alert.pseudo').fadeOut();
}
}
});
}
if (sEmail.length == 0) {
$form.find('.alert.mail').fadeIn().text('Email invalide');
return false;
}
else {
$form.find('.alert.mail').fadeOut();
}
if (!validateEmail(sEmail)) {
$form.find('.alert.mail').fadeIn().text('Email invalide.');
return false;
}
else {
$form.find('.alert.mail').fadeOut();
//todo en prod rajouter un / dans url devant template_php
$form.find('.alert.mail').fadeOut();
$.ajax({
type :"POST",
url :"template_php/function/registerVerifMail.php",
data :"mail=" + $form.find("#mail").val(), // données à transmettre
success:function (msg) {
if (msg == 0) {
$form.find('.alert.mail').fadeIn().text('Email déjà inscrit');
return false;
// on affiche l'erreur pseudo deja entrée
}
else {
$form.find('.alert.pseudo').fadeOut();
}
}
});
}
if (sEmail_verif != sEmail) {
$form.find('.alert.mail_verif').fadeIn().text('Les emails sont différents');
return false;
}
else {
$form.find('.alert.mail_verif').fadeOut();
}
if (mdp.length < 5) {
$form.find('.alert.mdp').fadeIn().text('Mot de passe trop court');
return false;
}
else {
$form.find('.alert.mdp').fadeOut();
}
if (mdp_verif != mdp) {
$form.find('.alert.mdp_verif').fadeIn().text('Mots de passes différents');
return false;
}
else {
$form.find('.alert.mail_verif').fadeOut();
}
});
});
</script>
[/code]
ci-dessous le code de ma box de login (l'erreur est ici)
[code]
<script type="text/javascript">
$(function () {
$('.login-form').live('submit', function () {
// validate signup form on keyup and submit
var $formLogin = $(this);
var EmailLogin = $formLogin.find('#mail_login').val();
var MdpLogin = $formLogin.find('#mdp').val();
if (EmailLogin.length == 0) {
$formLogin.find('.alert.mail_login').fadeIn().text('Email invalide');
return false;
}
else {
$formLogin.find('.alert.mail_login').fadeOut();
}
if (!validateEmail(EmailLogin)) {
$formLogin.find('.alert.mail_login').fadeIn().text('Email invalide.');
return false;
}
else {
//todo en prod rajouter un / dans url devant template_php
$formLogin.find('.alert.mail_login').fadeOut();
$.ajax({
type :"POST",
url :"template_php/function/registerVerifMailLogin.php",
data :"mail_login=" + $formLogin.find("#mail_login").val(), // données à transmettre
success:function (msg2) {
if (msg2 == 1) {
$formLogin.find('.alert.mail_login').text('Email inconnu');
return false;
// on affiche l'erreur pseudo deja entrée
}
else {
$formLogin.find('.alert.mail_login').fadeOut();
}
}
});
return false;
}
if (MdpLogin.length < 5) {
$formLogin.find('.alert.mdp_login').fadeIn().text('Mot de passe trop court');
return false;
}
else {
$formLogin.find('.alert.mdp_login').fadeOut();;
}
});
});
</script>
[/code]
ci-dessous le code en html de mon formulaire :
[code]
<div id="login-content">
<div class="logininfo">
</div>
<b>Connexion avec un compte 1Week</b>
<form action="template_php/function/loginAction.php" method="POST" class="login-form" id="login_form">
<div class="input-prepend">
<span class="add-on"><i class="icon-envelope"></i></span><input class="span3" id="mail_login" name="mail_login" placeholder="Email" size="16" type="text">
<div class="alert alert-error mail_login"><a data-dismiss="alert"></a></div>
</div>
<div class="input-prepend">
<span class="add-on"><i class="icon-lock"></i></span><input type="password" class="span3" id="mdp_login" name="mdp_login" placeholder="Mot de passe" size="16" type="text">
<div class="alert alert-error mdp_login"><a data-dismiss="alert"></a></div>
</div>
<button type="submit" class="btn" name="envoyer">connexion</button>
</form>
</div>
[/code]
Merci par avance pour votre aide