Faire une action sur une image utiliser pour faire SUBMIT

Eléphant du PHP | 159 Messages

14 déc. 2005, 15:25

Voilà j'ai un formulaire qu'on valide en cliquant sur image(voir code plus bas), mon problème est que quand je clique sur l'image tout ce passe bien, j'ai voulu effectuer une action au moment du clic car j'ai un script javascript qui me permet de vérifier si le champ est rempli et si l'adresse a une syntaxe correcte. Donc l'action s'effectue a moitié la fenetre de dialogue s'ouvre bien mais ne stoppe l'envoi du formulaire si une condition n'est pas vérifié.

Code : Tout sélectionner

<input type="image" src="images/basespclibouton.gif" onClick="verifmail(document.nouvclient.email.value)">

Eléphant du PHP | 440 Messages

14 déc. 2005, 15:26

Hello ,

A mon avis tu devrais mieu poster cote javascript car la je pense pas qu on puisse t aider ! :wink:
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Eléphant du PHP | 159 Messages

14 déc. 2005, 15:31

a oui pardon

Mammouth du PHP | 19672 Messages

14 déc. 2005, 15:33

Qu'est-ce que te retourne la fonction verifmail() ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 159 Messages

14 déc. 2005, 15:41

voila ma fonction :

Code : Tout sélectionner

<script type="text/javascript" language="Javascript" > <!-- function verifemail() { if(document.nouvclient.email.value == "") { alert("Veuillez entrer votre adresse email svp"); document.inscription.email.focus(); return false; } if(document.nouvclient.email.value.indexOf('@') == -1) { alert("Ce n'est pas une adresse email valide, verifiez la svp"); document.inscription.email.focus(); return false; } return true } //--> </script>

Eléphant du PHP | 353 Messages

14 déc. 2005, 15:46

Tu passes un argument à ta fonction lors de l'appel que tu ne récupères pas.

Mammouth du PHP | 19672 Messages

14 déc. 2005, 16:00

Voilà, il faut donc récupérer le retour : modifie comme suit:

Code : Tout sélectionner

<input type="image" src="images/basespclibouton.gif" onClick="return verifmail(document.nouvclient.email.value);">
Ce que ça va faire: récupérer le retour: si le retour est "false", il ne se passera rien, sinon, ton formulaire sera envoyé vers le traitement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

14 déc. 2005, 16:05

Si j'enlève les if, j'ai return true....donc ta fonction retourne toujours TRUE.
voila ma fonction :

Code : Tout sélectionner

<script type="text/javascript" language="Javascript" > <!-- function verifemail() { return true } //--> </script>
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 19672 Messages

14 déc. 2005, 16:15

Si j'enlève les if, j'ai return true....donc ta fonction retourne toujours TRUE.
voila ma fonction :

Code : Tout sélectionner

<script type="text/javascript" language="Javascript" > <!-- function verifemail() { return true } //--> </script>
Ben justement, si on rentre dans un des if, le return met fin à l'exécution de la fonction et renverra false.

Mais on peut assurer le coup autrement:
<script type="text/javascript" language="Javascript" >
<!--
function verifemail()
{
    var valide = true;
    if(document.nouvclient.email.value == "")
    {
        alert("Veuillez entrer votre adresse email svp");
        document.inscription.email.focus();
        valide = false;
    }
    if(document.nouvclient.email.value.indexOf('@') == -1)
    {
        alert("Ce n'est pas une adresse email valide, verifiez la svp");
        document.inscription.email.focus();
        valide = false;
    }
    return valide;
}
//-->
</script>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 159 Messages

14 déc. 2005, 16:19

bah je ne pense pas que le probleme vienne de ca car j'utilise ce script dans deux autres pages et j'ai aucun problème de fonctionnement

sinon voilà mon code qui ne fonctionne toujours pas :

Code : Tout sélectionner

<form name="nouvclient" method="post" action="index2.php?inscription=nouveau" onSubmit="return verifemail()"> ... <input type="image" src="images/basespclibouton.gif" onClick="return verifMail(document.nouvclient.email.value)"> ... </form>

Eléphant du PHP | 159 Messages

14 déc. 2005, 16:34

j'avais oublié de mettre un else dans mon script, mais ca ne change rien :
<script type="text/javascript" language="Javascript" >
<!--
function verifemail()
{
 if(document.nouvclient.email.value == "") {
   alert("Veuillez entrer votre adresse email svp");
   document.inscription.email.focus();
   return false;
  }
  else
 if(document.nouvclient.email.value.indexOf('@') == -1) {
   alert("Ce n'est pas une adresse email valide, verifiez la svp");
   document.inscription.email.focus();
   return false;
  }
return true
}
//-->
</script>

Mammouth du PHP | 19672 Messages

14 déc. 2005, 16:42

Si tu mets onsubmit dans ta balise <form>, le onclick dans ton bouton devient inutile. En revanche, ton fonction atend un certain nombre de paramètres non ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 159 Messages

14 déc. 2005, 16:54

j'ai essayé mais ca ne marche pas

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 déc. 2005, 16:57

Tu as mal écrit le nom de ta fonction dans le onClick dans le bouton image et d'ailleurs ce n'est pas nécéssaire si tu utilise un onsubmit dans form.

En plus, une erreur de copie/coller dans les lignes .focus : le champ email appartient à nouvclient et non à inscription.

Rappel: un bouton de type image joue le rôle d'un bouton submit.

Correction:

Code : Tout sélectionner

<script type="text/javascript" language="Javascript" > <!-- function verifemail() { if(document.nouvclient.email.value == "") { alert("Veuillez entrer votre adresse email svp"); document.nouvclient.email.focus(); return false; } else if (document.nouvclient.email.value.indexOf('@') == -1) { alert("Ce n'est pas une adresse email valide, verifiez la svp"); document.nouvclient.email.focus(); return false; } return true; } //--> </script> <form name="nouvclient" method="post" action="index2.php?inscription=nouveau" onSubmit="return verifemail();"> ... <input type="image" src="images/basespclibouton.gif"> ... </form>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 159 Messages

14 déc. 2005, 17:17

exact erreur stupide, pas assez concentré

merci beaucoup a tous en tout cas