Onsubmit = return stop

Résolu
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 - 21 nov. 2007 à 14:58
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 21 nov. 2007 à 15:42
Bonjours,

Voila mon soucis...

Mon idéal serait de trouver exactement ce que j'ai mis dans le titre mais je n'ai trouvé que true, ou false...

En faite en cliquant sur un bouton je verifis (en javascript) que les champs obligatoires soient remplis si c'est pas le cas un message d'erreur fait maison apparait.
Le prombleme c'est que la valeur "return(false);" recharge la page et on a pas le temps de lire mon joli message...

Donc je cherche dans un 1er temps à stoper l'envois, en cas d'erreur plutot que de l'annuler.
Et enfin dans un  2eme temps à annuler l'envois et recharger la page une fois que l'utilisateur aura cliqué sur le bouton de MON méssage d'erreur.

Az

5 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 nov. 2007 à 15:05
Bonjour,

>>Le prombleme c'est que la valeur "return(false);" recharge la page
>>et on a pas le temps de lire mon joli message...
    ben... non à priori !
    mais ça dépend de ce que tu fais !!!!!

    la principe :



function ctr()
{   si erreur
          message
          return false;
     else
          return true;
}
<form name="formulaire" action="..." onsubmit="return(ctr());"....>
...
</form>

et surtout pas pas formulaire.submit, de onclick ....
 

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
3
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
21 nov. 2007 à 15:28
Bon je voulais eviter de poster mon code pour vous épargner une séance de torture...

Enfait mon message d'erreur c'est vraiment un truc maison, qui n'utilise pas la fonction alert.   
           
function checkfrm()
{
var message = "";
        if (document.ajout.mail_com.value != "")
        {
            indexAroba = document.ajout.mail_com.value.indexOf('@');
            indexPoint = document.ajout.mail_com.value.indexOf('.');
            if ((indexAroba < 0) || (indexPoint < 0))
                {message = "Le mail est incorrect\n";}
        }
        else
            {message = "Veuillez saisir le mail du commercial.\n";}

if (document.ajout.promo.value == "")
{message = "Veuillez saisir le nom du promoteur.\n";}

if (document.ajout.ville.value == "")
{message = "Veuillez saisir la ville ou ce trouve le programme.\n";}

if (document.ajout.cposte.value == "")
{message = "Veuillez saisir le code postal ou ce trouve le programme.\n";}

if (document.ajout.programme.value == "")
{message = "Veuillez saisir le nom du programme.\n";}

if (document.ajout.d_livraison.value == "")
{message = "Veuillez saisir la date de livraison.\n";}

if (document.ajout.description.value == "")
{message = "Veuillez saisir la déscription commercial du programme.\n";}

if (document.ajout.type.value == "")
{message = "Veuillez saisir le type du bien.\n";}

if (document.ajout.lot.value == "")
{message = "Veuillez saisir le N° de lot du bien.\n";}

if (document.ajout.surface.value == "")
{message = "Veuillez saisir la surface du bien.\n";}
               
if (document.ajout.prix.value == "")
{message = "Veuillez saisir le prix du bien.\n";}

if (document.ajout.civilite.value == "")
{message = "Veuillez choisir la civilitée du commercial.\n";}

if (document.ajout.nom_com.value == "")
{message = "Veuillez sasir le nom du commercial.\n";}

if (message == "")
{
return(true);
}
else
{

                      debug($('modal_window_content'))
                    var win = new Window('Erreur', {className: "darkX", title: "Informations manquantes", resizable: false, closable: false, maximizable: false, minimizable: false, top:100, left:100,  width:300, height:170, zIndex:150, opacity:1, resizable: true})
                    win.getContent().innerHTML = "
"+message+"

";
                    win.setDestroyOnClose();
                    win.showCenter(true);
                    return(false);
}
}

Bon en faite pour faire plus simple, peu importe le debut...
C'est ca qui compte:

                      debug($('modal_window_content'))

                    var win = new Window('Erreur', {className: "darkX",
title: "Informations manquantes", resizable: false, closable: false,
maximizable: false, minimizable: false, top:100, left:100,  width:300,
height:170, zIndex:150, opacity:1, resizable: true})

                    win.getContent().innerHTML = "
"+message+"

";

                    win.setDestroyOnClose();

                    win.showCenter(true);

                    return(false);

Tous marche bien mais le "return(false);" réinitialise le formulaire et efface mon méssage maison.

Az
0
davidcian Messages postés 186 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 19 décembre 2009 1
21 nov. 2007 à 15:37
Bon bah voila... 1ere boulette de journée... en faite j'ai oublié qu'il y avait un onclick sur  le bouton "input" de validation, qui renvoyé a cette meme page...

Merci de ton aide ca m'a permis de me reveiller... un peu...

Az
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 nov. 2007 à 15:39
>>Enfait mon message d'erreur c'est vraiment un truc maison, qui n'utilise pas la fonction alert.  
    à priori, si ce truc maison est bien fait, ça ne change rien.
    et puis alert c'est pas très beau, chacun y va de son truc de remplacement  !

>>


Bon en faite pour faire plus simple...


C'est ca qui compte:




   


mais le "




return(false);


" réinitialise le formulaire
    pas de raisons !
   



<form name="formulaire" action="..." onsubmit="return(ctr());"....>
...
</form>
  





et surtout pas pas formulaire.submit(), de onclick ....



 









    la fonction



checkfrm()  est appelée comme ça   ??












cependant, pour être sûr, pour tests.... faire un alert justement
à la place de cette fonction maison ( qu'on n'a pas ! ) , et nous dire









<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 nov. 2007 à 15:42
téléscopage de nos messages !
    >>il
y avait un onclick sur  le bouton "input" de validation
    téléscopage avec le return du onsubmit, tout (?) s'explique.


<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Rejoignez-nous