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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [résolu, merci][javascript] pb de lancement de formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu, merci][javascript] pb de lancement de formulaire

n°799867
papa6
Posté le 19-07-2004 à 18:26:07  profilanswer
 

Bonjour,
 
Ca fait quelques jours que je galère sur un problème concernant les vérifications de formulaire. En plus, j'ai copié-collé ce qui était dans quelques tutos (en adaptant...). Bref, je ne voie pas mon (mes) erreur(s) :
 
Mon script (avant le <TITLE> ) :
<script language="JavaScript" type="text/javascript">
<!--
function verif_formulaire()
{
ok = 0;
 
if (document.f.nouvdest[12].checked == true) { ok = 1; }
if (document.f.nouvdest[14].checked == true) { ok = 1; }
if (document.f.nouvdest[15].checked == true) { ok = 1; }
if (document.f.nouvdest[13].checked == true) { ok = 1; }
 
if ((document.f.nouvprio[0].selected == true)+(document.f.nouvtitre.value == '')) { ok = 0; }
if (ok == 0)
{
alert('Erreur, remplissez tous les champs du nouveau message : titre, destinataire et niveau de priorité');
return false;
}
else
{
document.f.submit();
return true;
}
}
//-->
</script>
 
Puis avant le </FORM> :
<INPUT type="button" name="bouton" value="Valider" onClick="verif_formulaire();">
 
Ca me semble OK, mais pourtant ça ne marche pas.
IE me met un "objet attendu" tandis que le debugger JS de Firefox pointe la ligne if (document.f.nouvdest[12].checked == true) { ok = 1; } et marque "document.f.nouvdest" has no properties...
 
A signaler que si au lieu d'un bouton + test JS je mets un <INPUT type="submit">, ça marche (mais y'a pas de test). (Mais j'ai lu qu'il fallait faire un bouton qui lance un JS plutôt qu'un submit.)
 
Un grand merci d'avance pour l'aide,
papa6


Message édité par papa6 le 20-07-2004 à 16:15:38
mood
Publicité
Posté le 19-07-2004 à 18:26:07  profilanswer
 

n°800303
ze-angel
Angel in sight... Devil inside
Posté le 20-07-2004 à 10:13:34  profilanswer
 

t sur que c'est pas un prob de tes variables ?

n°800314
fxoxo
Posté le 20-07-2004 à 10:17:59  profilanswer
 

Citation :

(document.f.nouvdest[12].checked == true) { ok = 1; } et marque "document.f.nouvdest" has no properties


 
Si il te met qu'il n'y à pas de propriétés c'est qu'il n'y à pas de propriété !!!
 
---> regarde si tu appelle bien l'objet (document.f.nouvdest) et si tes noms de variable sont bien les mêmes (form name="f" ???)


Message édité par fxoxo le 20-07-2004 à 10:18:25

---------------
stpfilms.free.fr
n°800470
papa6
Posté le 20-07-2004 à 11:26:38  profilanswer
 

Oui, ça doit être un problème de variables.
 
Pour le nom du form, c'est bien "f".
J'ai essayé document.f.nouvdest[12].checked et ocument.f.nouvdest.[12].checked, mais cette dernière possibilité ne marche pas. J'ai aussi essayé ['12'] sans succès...
J'ai aussi viré le "== true", pas de changement :-(
 
Je crois que l'erreur se situe au niveau du nom de la checkbox, mais je ne peux pas tester toutes les checkboxes de ma page, celle qui m'intéresse est "nouvdest[n°]

n°800506
fxoxo
Posté le 20-07-2004 à 11:42:27  profilanswer
 

Un truc comme ca devrais marcher
 
 
//nombre de checkbox (si variable)
var longueur= document.f.nom_checkbox.length;
 
for (i=0; i < longueur; i++)
  {
   if(document.getElementsByName("nom_checkbox" )[i].checked == true)
   ok=1;
  }


---------------
stpfilms.free.fr
n°800542
papa6
Posté le 20-07-2004 à 12:01:43  profilanswer
 

merci mais c'est pas ça...  :-(
il me met :
Erreur : document.f.nouvdest has no properties
 
Est-ce que ce n'est pas parce que le nom de la checkbox est "nouvdest[12]" et non pas "nouvdest" avec [12] coché ?
Alors j'ai aussi essayé if(document.getElementsByName("nouvdest[i]" ).checked
mais là non plus... pourtant, la différence avec précemment, c'est que je n'obtiens plus d'erreur du déboggueur. Quand je clique sur le bouton, il semble effectuer sa fonction en douce, mais ni n'affiche l'alert, ni lance le submit...

n°800610
fxoxo
Posté le 20-07-2004 à 13:08:46  profilanswer
 

papa6 a écrit :

merci mais c'est pas ça...  
Est-ce que ce n'est pas parce que le nom de la checkbox est "nouvdest[12]" et non pas "nouvdest" avec [12] coché ?


 
Oui: tout tes checkbox doivent avoir le même nom
ex: http://fr.selfhtml.org/html/formul [...] rification
 
 
Pizza <input type="checkbox" name="checkbox_produit" value="pizza" style="border-width:0px;"> //checkbox_produit[1]
Fromage <input type="checkbox" name="checkbox_produit" value="fromage" style="border-width:0px;">//checkbox_produit[2]
Thon <input type="checkbox" name="checkbox_produit" value="Thon" style="border-width:0px;">//checkbox_produit[31]
 
 
 


---------------
stpfilms.free.fr
n°800750
papa6
Posté le 20-07-2004 à 14:48:27  profilanswer
 

je viens d'essayer avec la variable "nouvdest[]" qui prend value=12 (par exemple)
 
je devrais alors avoir nouvdest[0] = 12, nouvdest[1] = 14, nouvdest[2] = 18 si j'ai coché les cases 12, 14 et 18.
 
et de cette façon, j'obtiens encore un Erreur : document.f.nouvdest has no properties
 
 
Voici un extrait plus complet de mon code, le cas où...
 
<script language="JavaScript" type="text/javascript">
<!--
function verif_formulaire()
{
 ok = 0;
 
 
var longueur= document.f.nouvdest.length;
 
for (i=0; i < longueur; i++)
  {
   if(document.getElementsByName("nouvdest" )[i].checked == true)
   ok=1;
  }
 if ((document.f.nouvprio[0].selected == true) || (document.f.nouvtitre.value == '')) { ok = 0; }
 if (ok == 0)
 {
  alert('Erreur, remplissez tous les champs du nouveau message : titre, destinataire et niveau de priorité');
 }
 else
 {
  document.f.submit();
 }
}
//-->
</script>
 
[...]
<FORM method="POST" name="f" action="#" ENCTYPE="multipart/form-data">
 
[...]
A l'attention de :<BR>
<INPUT type="checkbox" name="nouvdest[]" value="14">Lyly &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest[]" value="15">Luc &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest[]" value="13">Neo &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest[]" value="12">Mémo personnel
 
[...]
<INPUT type="button" name="bouton" value="Valider" onClick="verif_formulaire();return true;">

n°800777
fxoxo
Posté le 20-07-2004 à 15:09:22  profilanswer
 

<INPUT type="checkbox" name="nouvdest[]" value="14">Lyly &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest[]" value="15">Luc &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest[]" value="13">Neo &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest[]" value="12">
 
 
name="nouvdest[]" c'est pas bon, tu doit avoir name="nouvdest" pour tous tes checkbox nouvdest (c'est avec le javascript que tu utilise un tableau pour accéder à un des checbox par ex checkbox[0] et le premier input de nom checkbox de ta page , checkbox[1] le 2emme etc ...)
 
ainsi si tu met ca :
 
<script language="JavaScript" type="text/javascript">
<!--
function verif_formulaire()
{
ok = 0;
 
 
var longueur= document.f.nouvdest.length;
 
for (i=0; i < longueur; i++)
 {
  if(document.getElementsByName("nouvdest" )[i].checked == true)
  ok=1;
 }
//if ((document.f.nouvprio[0].selected == true) || (document.f.nouvtitre.value == '')) { ok = 0; }
if (ok == 0)
{
 alert('Erreur, remplissez tous les champs du nouveau message : titre, destinataire et niveau de priorité');
}
else
{
 document.f.submit();
}
}
//-->
</script>
 
[...]
<FORM method="POST" name="f" action="#" ENCTYPE="multipart/form-data">
 
[...]
A l'attention de :<BR>
<INPUT type="checkbox" name="nouvdest" value="14">Lyly &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest" value="15">Luc &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest" value="13">Neo &nbsp;&nbsp;&nbsp;&nbsp;<INPUT type="checkbox" name="nouvdest" value="12">Mémo personnel
 
[...]
<INPUT type="button" name="bouton" value="Valider" onClick="verif_formulaire();return true;">  
 
(j'ai mis en commentaire le script sur nouvprio et nouvtitre non présent dans le code)  
Ca marche: si tu ne coche aucune case, tu à le message d'alert, sinon c'est ok ...


Message édité par fxoxo le 20-07-2004 à 15:10:22

---------------
stpfilms.free.fr
n°800862
papa6
Posté le 20-07-2004 à 15:52:12  profilanswer
 

c'est vrai que le message d'erreur s'affiche si on ne sélectionne personne, mais si je sélectionne 2 personnes, seule une est sélectionnée, puisque maintenant ce n'est plus un tableau.
Pourtant je sais que la forme <INPUT type="checkbox" name="nouvdest[]" value="14"> marche en JS
 
Avec cette forme en tableau, qui autorise la saisie de plusieurs checkbox, je ne sais pas...

mood
Publicité
Posté le 20-07-2004 à 15:52:12  profilanswer
 

n°800891
papa6
Posté le 20-07-2004 à 16:10:13  profilanswer
 

c'est bon, voici la réponse :
 
il fallait utiliser getElementsByName("nouvdest[]" )[i]
 
Extraits :
<script language="JavaScript" type="text/javascript">  
<!--  
function verif_formulaire()  
{  
ok = 0;  
var longueur= document.getElementsByName("nouvdest[]" ).length;  
 
for (i=0; i < longueur; i++)  
{  
if(document.getElementsByName("nouvdest[]" )[i].checked == true) ok=1;  
}  
 
if (ok == 0)  
{
alert('Erreur, remplissez tous les champs du nouveau message : titre, destinataire et niveau de priorité');
}  
else
{
document.f.submit();
}  
 
}  
 
//-->  
</script>  
 
Puis :
<INPUT type="checkbox" name="nouvdest[]" value="12">Machin &nbsp;&nbsp;&nbsp;&nbsp;
<INPUT type="checkbox" name="nouvdest[]" value="15">Tartenpion &nbsp;&nbsp;&nbsp;&nbsp;
etc...
 
 
SUJET CLOS , merci pour votre aide ! :)


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

  [résolu, merci][javascript] pb de lancement de formulaire

 

Sujets relatifs
[PHP / PDF] Création de formulaire éditable[résolu] avantages et inconvénients de VB.NET
resultats checkbox indexées [résolu][résolu]"Focus" sur une ligne à l'affichage d'un menu déroulant
[php-mysql] probleme de décryptage de mots de passe [resolu][resolu]replace dans une chaine
Tableau[variable] incompatible en C++ ??? :| [Résolu]Transmettre une variable sans url et formulaire
Javascript : Menu arborescant style windowsinsertion de javascript dans du php ?!?
Plus de sujets relatifs à : [résolu, merci][javascript] pb de lancement de formulaire


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