Faire une action sur une image utiliser pour faire SUBMIT

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Faire une action sur une image utiliser pour faire SUBMIT

par budiste » 14 déc. 2005, 17:17

exact erreur stupide, pas assez concentré

merci beaucoup a tous en tout cas

par sadeq » 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>

par budiste » 14 déc. 2005, 16:54

j'ai essayé mais ca ne marche pas

par Cyrano » 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 ?

par budiste » 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>

par budiste » 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>

par Cyrano » 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>

par mere-teresa » 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>

par Cyrano » 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.

par nicolas » 14 déc. 2005, 15:46

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

par budiste » 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>

par Cyrano » 14 déc. 2005, 15:33

Qu'est-ce que te retourne la fonction verifmail() ?

par budiste » 14 déc. 2005, 15:31

a oui pardon

par DarkBlue » 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:

Faire une action sur une image utiliser pour faire SUBMIT

par budiste » 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)">