Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
976 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Bloquer envoi de Formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bloquer envoi de Formulaire

n°1461576
ncdetoulou​se
Posté le 20-10-2006 à 17:09:17  profilanswer
 

Bonjour à tous !
J'ai un formulaire avec trois choses à choisir (par boutons radios à chaque fois).
Je souhaiterais que si l'utilisateur clique sur le bouton d'envoi de formulaire sans avoir choisi l'une des trois choses, cela ne fonctionne pas et une alerte apparaisse !
Merci de m'aider ^^
Excellente soirée à vous !

mood
Publicité
Posté le 20-10-2006 à 17:09:17  profilanswer
 

n°1461691
gatsu35
Blablaté par Harko
Posté le 20-10-2006 à 21:55:56  profilanswer
 

et si l'utilisateur n'a pas JS d'activé tu fais comment [:moule_bite]

n°1461895
ncdetoulou​se
Posté le 21-10-2006 à 13:13:47  profilanswer
 

Si il l'a d'activé, comment faire ?
Personne sait pour ma question ?

n°1461896
gatsu35
Blablaté par Harko
Posté le 21-10-2006 à 13:14:51  profilanswer
 

file le code HTML  
le JS viendra ensuite :o

n°1461900
ncdetoulou​se
Posté le 21-10-2006 à 13:20:31  profilanswer
 

<form name="formulaire" method="post" action="tel2.php" onSubmit="return disableForm(this);">
<input type="radio" name="gain" value="1">
            <input type="radio" name="gain" value="2">
            <input type="radio" name="gain" value="3">
 
              <input type="radio" name="mode" value="1">
<input type="radio" name="mode" value="2">
<input type="radio" name="mode" value="3">
 
<input type="submit" name="Submit" value="Lancer Envoi" STYLE="font-size:10px;">

n°1461908
gatsu35
Blablaté par Harko
Posté le 21-10-2006 à 13:36:19  profilanswer
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title></title>
  5. <script type="text/javascript">
  6. function checkForm(form) {
  7.  var radioNames=[];
  8.  var radioCheck=[];
  9.  var inp = form.getElementsByTagName("input" );
  10.  //récupère tous les noms communs des boutons radios
  11.  for (var i=0; i<inp.length; i++) {
  12.   var x = inp[i];
  13.   if (x.type=="radio" && !inArray(radioNames,x.name)) {
  14.    radioNames.push(inp[i].name);
  15.    radioCheck.push(false); //tableau contenant le check pour savoir si un groupe de boutons radio a été coché
  16.   }
  17.  }
  18.  //on parcoure maintenant le tableau des noms et à chaque fois on va parcourir tous les inputs et les checker
  19.  for (var i=0; i<radioNames.length; i++) {
  20.   for (var r=0; r<inp.length; r++) {
  21.    var x=inp[r];
  22.    if (x.type=="radio" && x.name==radioNames[i] && x.checked) {
  23.     radioCheck[i]=true;
  24.    }
  25.   }
  26.  }
  27.  //maintenant on retourne regarde si tout radioCheck est à true, sinon on alert
  28.  for (var i=0; i<radioCheck.length; i++) {
  29.   if (radioCheck[i]==false) {
  30.    alert("vous n'avez pas sélectionné l'une des trois choses :o" );
  31.    return false
  32.   }
  33.  }
  34.  return true;
  35. }
  36. function inArray(array, str) {
  37.  for (var i=0; i<array.length; i++) {
  38.   if (array[i]==str) return true;
  39.  }
  40.  return false;
  41. }
  42. </script>
  43. </head>
  44. <body>
  45. <form name="formulaire" method="post" action="tel2.php" onsubmit="return checkForm(this);">
  46. <input type="radio" name="gain" value="1">
  47.             <input type="radio" name="gain" value="2">
  48.             <input type="radio" name="gain" value="3">
  49.               <input type="radio" name="mode" value="1">
  50. <input type="radio" name="mode" value="2">
  51. <input type="radio" name="mode" value="3">
  52. <input type="submit" name="Submit" value="Lancer Envoi" style="font-size:10px;">
  53. </form>
  54. </body>
  55. </html>


Edit : 10 minutes pour coder ça :/  :cry:


Message édité par gatsu35 le 21-10-2006 à 13:37:23
n°1461924
ncdetoulou​se
Posté le 21-10-2006 à 13:50:58  profilanswer
 

Merci infiniment ça fonctionne !
C'est + que de l'aide là donc un second Merci !

n°1462009
FlorentG
Posté le 21-10-2006 à 16:26:03  profilanswer
 

Il faut surtout faire la même chose côté serveur...

n°1462027
leflos5
On est ou on est pas :)
Posté le 21-10-2006 à 16:54:01  profilanswer
 

FlorentG a écrit :

Il faut surtout faire la même chose côté serveur...


BAh pourquoi si l'utilisateur peut pas envoyer le formulaire s'il est mal remplit  :bounce:

n°1462043
FlorentG
Posté le 21-10-2006 à 17:17:02  profilanswer
 

leflos5 a écrit :

BAh pourquoi si l'utilisateur peut pas envoyer le formulaire s'il est mal remplit  :bounce:


Ca c'est ce que tu crois [:itm]

mood
Publicité
Posté le 21-10-2006 à 17:17:02  profilanswer
 

n°1462103
gatsu35
Blablaté par Harko
Posté le 21-10-2006 à 18:34:21  profilanswer
 

FlorentG a écrit :

Il faut surtout faire la même chose côté serveur...


D'où mon premier post [:petrus75]

n°1465158
leflos5
On est ou on est pas :)
Posté le 26-10-2006 à 05:57:48  profilanswer
 

FlorentG a écrit :

Ca c'est ce que tu crois [:itm]


C'était ironique [:itm]

n°1465167
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-10-2006 à 08:46:49  profilanswer
 

Gatsu>j'aime beaucoup ton code mais je vois pas l'intérêt de faire 2 tableaux ( radioName et radioCheck). Perso j'aurais fait une table de hashage nom:checked.
Ah et pis tu as la fonction indexOf de l'objet tableau plutot que inArray et là je sais ce que tu va me dire: "ouais mais c'est du javascript1.6 et ça marche pas sous IE". Certes mais temps qu'à la ré-écrire ....

n°1465186
gatsu35
Blablaté par Harko
Posté le 26-10-2006 à 09:30:23  profilanswer
 

anapajari a écrit :

Gatsu>j'aime beaucoup ton code mais je vois pas l'intérêt de faire 2 tableaux ( radioName et radioCheck). Perso j'aurais fait une table de hashage nom:checked.
Ah et pis tu as la fonction indexOf de l'objet tableau plutot que inArray et là je sais ce que tu va me dire: "ouais mais c'est du javascript1.6 et ça marche pas sous IE". Certes mais temps qu'à la ré-écrire ....


Jvais passer pour un con, mais je vois pas comment on les ecrit dynamiquement les table de hashage [:petrus75]

n°1465206
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-10-2006 à 09:49:57  profilanswer
 

Code :
  1. var radioHash = new Array();
  2. for (var i=0; i<inp.length; i++) {
  3.   if (inp[i].type=="radio" &&  radioHash[inp[i].name] == undefined) {
  4.     radioHash[inp[i].name]] = false;
  5.   }
  6. }


et zou :o ( du coup t'as même plus besoin de la fonction inArray ou indexOf)


Message édité par anapajari le 26-10-2006 à 09:50:34
n°1465774
FlorentG
Posté le 27-10-2006 à 00:52:58  profilanswer
 

Je pense qu'il n'est pas nécessaire de préciser Hash dans le nom, vu que tout tableau est implicitement une table de hachage ?

n°1465815
anapajari
s/travail/glanding on hfr/gs;
Posté le 27-10-2006 à 08:54:05  profilanswer
 

Je pense qu'il n'est pas nécessaire de faire des posts comme ça à une heure du matin, get a life :o
Mais tu as entierement raison, je savais juste pas quoi mettre :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Bloquer envoi de Formulaire

 

Sujets relatifs
formulaire en imageRemplir un formulaire automatiquement...
envoi de mail avec lotus notes 6.5.1 - probleme de formattageinsert into depuis un formulaire
FORMULAIREQuel formulaire de mail utilisez vous
[C++ - Sockets - Select] Envoi de messages entre serveur / client[javascript] "réponse" à un formulaire
Executer Formulaire de contactun formulaire sur tel portable
Plus de sujets relatifs à : Bloquer envoi de Formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR