Mini problème à l'envoi du formulaire

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Mini problème à l'envoi du formulaire

Message par Phyliono Jeu 30 Juin 2016 - 19:32

Détails techniques


Version du forum : phpBB2
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Tous les navigateurs
Capture d'écran du problème :
Voir l'image:

Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://www.universiteuniverselle.com

Description du problème

Bonjour,

J'ai ajouté un script à mon formulaire de sorte à ce que si les champs ne sont pas tous remplis, le formulaire ne s'envoie pas et une pop-up s'affiche. Sauf que ça mène sur une autre page avec ce message (voir capture d'écran) et je voudrais que ça reste sur la page du formulaire, sans modifier les champs déjà remplis.

Code:
Code:
<script type="text/javascript">
function envoiMessage(form)
{if(form.info.value==' ')
{
alert('Vous devez indiquer une information');
return false;
}
else if(form.screen.value==' ')
{
alert('Vous devez indiquer une capture d'écran');
return false;
}
else if(form.lot.value==' ')
{
alert('Vous devez choisir un lot');
return false;
}
else
{
var txt_message = "Information : " + form.info.value + '\n' + "Captures d'écran : " + form.screen.value + '\n' + "Lot : " + form.lot.value + " " + '\n';

  form.message.value = txt_message;
  form.subject.value = "Demander un test" ;
return true;
}
}
</script>
<form action="/post" method="post" name="post" enctype="multipart/form-data" onsubmit="return envoiMessage(this)">
<input type="hidden" name="mode" value="reply" /><!--    Un nouveau topic sera créé    -->
<input type="hidden" name="topictype" value="0" checked="checked" /> <!--    Value 0: Sujet Normal (1 = post-it / 2 = annonce)    -->
<input type="hidden" name="message" value="" /> <!--    Contiendra le texte du message    -->
<input type="hidden" name="subject" value="" />
<input type="hidden" name="t" value="1993" />
<table style="width: 100%;" cellpadding="0" cellspacing="1" border="0" class="forumline">
<tr>
<th nowrap="nowrap" width="100%" class="secondarytitle">
<h2>Langues de Vipère</h2>
</th>
</tr>
<tr>
  <td height="6">
  </td>
</tr>
<tr>
<td class="row1"><br /><div align="center">
<label for="info"><span style="font-family: ubuntu, verdana;font-size:11px;margin-left:15px;"><strong>Votre information :</strong> <font color="red">*</font></span></label><br />
<textarea name="info" id="info" class="formulaire" style="height:30px; resize:none;"></textarea><br /><br />
 
<label for="screen"><span style="font-family: ubuntu, verdana;font-size:11px;margin-left:15px;"><strong>Vos captures d'écran :</strong> <font color="red">*</font></span></label><br />
<textarea name="screen" id="screen" class="formulaire" style="height:30px; resize:none;"></textarea><br /><br />
 
<label for="lot"><span style="font-family: ubuntu, verdana;font-size:11px;margin-left:15px;"><strong>Votre lot :</strong> <font color="red">*</font></span></label><br />
<select name="lot" id="lot" class="formulaire" style="height:25px;width:195px;margin-right:5px;">
<option value=" "></option>
<option value="5 :mr:">5 médailles</option>
<option value="30 :e:">30 étoiles</option>
</select><br />
<br />
</div>
</td></tr></table>
<table class="forumline" width="100%" border="0" cellspacing="0" cellpadding="0" style="margin-top:6px;">
<tr class="modactions">
<td align="center" nowrap="nowrap" class="modgen modadmin">
<input name="post" type="submit" value=" " class="formulaire bouton_envoyer" />
</td>
</tr>
</table>
</form>

Merci d'avance.


Dernière édition par Phyliono le Jeu 7 Juil 2016 - 7:14, édité 1 fois
Phyliono

Phyliono
Membre habitué

Messages : 1304
Inscrit(e) le : 24/02/2013

http://www.universiteuniverselle.com
Phyliono a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Mini problème à l'envoi du formulaire

Message par Invité Ven 1 Juil 2016 - 10:34

Bonjour,

Je vois 3 petits problèmes dans le javascript :
- form.info.value == ' ' → on regarde si la valeur de ce genre est égale à un espace, alors que non, on veut plutôt vérifier qu'elle est égale à du vide, donc ''
- form.screen.value == ' ' → même chose
- alert('Vous devez indiquer une capture d'écran'); → le caractère ' n'est pas échappé : du coup, la chaîne d'alerte devient la chaîne Vous devez indiquer une capture d, et la suite plante, puisqu'il y a du texte qui ne correspond à rien en javascript. Du coup, soit on échappe le caractère en mettant 'Vous devez indiquer une capture d\'écran', soit on met des guillemets à la place "Vous devez indiquer une capture d'écran"

Voilà une proposition de correction :
Code:
<script type="text/javascript">
  function envoiMessage(form){
      if(form.info.value==''){
         alert('Vous devez indiquer une information');
         return false;
      }
      else if(form.screen.value==''){
         alert("Vous devez indiquer une capture d'écran");
         return false;
      }
      else if(form.lot.value==' '){
         alert('Vous devez choisir un lot');
         return false;
      }
      else {
         var txt_message = "Information : " + form.info.value + '\n' + "Captures d'écran : " + form.screen.value + '\n' + "Lot : " + form.lot.value + " " + '\n';
   
         form.message.value = txt_message;
         form.subject.value = "Demander un test" ;
         return true;
      }
  }
</script>

J'espère que ça fonctionnera mieux ! Smile
Anonymous

Invité
Invité


Invité a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Mini problème à l'envoi du formulaire

Message par Phyliono Jeu 7 Juil 2016 - 7:13

Merci beaucoup, c'est parfait.
Phyliono

Phyliono
Membre habitué

Messages : 1304
Inscrit(e) le : 24/02/2013

http://www.universiteuniverselle.com
Phyliono a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum