probleme js

  • Auteur de la discussion Auteur de la discussion yorkknew
  • Date de début Date de début
WRInaute discret
bonjour à tous,
alors j'ai un petit souci avec JS, en effet si un internaute rentre une adresse e-mail incorrect un message s'affiche mais l'internaute est quand même redirigé vers la page de soumission. Voilà ce que j'aimerais : que mon script lorsqu'un e-mail incorrect est entré que un message s'affiche et qu'il reste sur la page où il est.
J'espère m'avoir exprimé correctement.
Mon code JS :

Code:
<script language="javascript">
function submitform() { if (document.sub_form.email_addr.value=='')
alert("Cette adresse électronique n'est pas valide");
else {
if ( ((document.sub_form.email_addr.value.indexOf('@',1))==-1)||(document.sub_form.email_addr.value.indexOf('.',1))==-1 )
alert("Cette adresse électronique n'est pas valide");
else
document.sub_form.submit();
}
} </script>
Merci.
 
WRInaute passionné
Tu lances ta fonction "submitform()" sur un input type="submit" ou type="button"?
La seconde solution est la bonne. (sinon pour la première il faut retourner false il me semble)
 
WRInaute discret
Salut,

l'ideal est effectivement de faire un return dans ta fonction (return false juste après ton alerte et return true a la place de ton document.sub_form.submit();)
Ensuite tu changes ton onClick du bouton submit pour avoir ceci : onClick="return false;" et dans ta création de formulaire tu rajoutes onSubmit="return submitform();"
Ce qui donnes ceci:
Code:
<script language="javascript"> 
function submitform() {
  if (document.sub_form.email_addr.value=='')  {
    alert("Cette adresse électronique n'est pas valide");
    retun false;
  }
  if ( (document.sub_form.email_addr.value.indexOf('@',1)==-1) || (document.sub_form.email_addr.value.indexOf('.',1) ==-1 )) {
    alert("Cette adresse électronique n'est pas valide");
    return false;
  }
  return true;
} </script>

<form action="page.php" method="post" name="sub_form" onSubmit="return submitform();">
  <input type="text" name="email_addr">
  <input type="submit" onClick="return false;">
</form>
 
WRInaute accro
>> oui je lance la fonction par un input type="submit" de type="button"

non c est soit l'un, soit l'autre.

soit tu as un type="submit'
soit tu as un type="button'

lequel des deux ?
 
WRInaute discret
heu j'ai type="image" (je sais j'ai trafiqué un peu)
sinon ca marche plus du tout là je vous passe mon code formulaire :

<form
action="http://www.monsite.com/newsletter/subscription.php"
method="post" name="sub_form"> <input
name="email_addr" class="input" value="adresse@mail.fr"
onblur="if(this.value=='') this.value='adresse@mail.fr';"
onfocus="if(this.value=='adresse@mail.fr') this.value='';"
type="text"> <input class="radio" name="op"
value="leave" type="hidden"><input class="radio"
name="op" value="join_direct" checked="checked"
type="hidden"><input name="list_id" value="1"
type="hidden"><br>
<input src="images/btn2.jpg" name="sub"
onclick="return false;" onsubmit="return submitform();"
type="image"></form>
 
WRInaute discret
Avec un zeste de mise en page lors du copier/coller c'est tout de même plus sympathique... merci!
Corrigé cela donne ca :

Code:
<form action="http://www.monsite.com/newsletter/subscription.php" method="post" name="sub_form" onSubmit="return submitform();">
  <input name="email_addr" class="input" value="adresse@mail.fr" onblur="if(this.value=='') this.value='adresse@mail.fr';" onfocus="if(this.value=='adresse@mail.fr') this.value='';" type="text">
  <input class="radio" name="op" value="leave" type="hidden">
  <input class="radio" name="op" value="join_direct" checked="checked" type="hidden">
  <input name="list_id" value="1" type="hidden"><br> 
  <input src="images/btn2.jpg" name="sub" onclick="if (submitform()) { this.form.submit(); }" type="image">
</form>

Ah oui, j'oubliais, à condition d'avoir modifier le js comme dit au post précédant...
 
WRInaute passionné
C'est quoi ton hébergeur? Si il acceptes pas du POST dur dur.

Essaye (pour tester) de mettre method="get"
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut