misterdarth
Messages postés14Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention10 novembre 2004
-
7 oct. 2004 à 11:39
misterdarth
Messages postés14Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention10 novembre 2004
-
8 oct. 2004 à 00:06
Bonjour,
Lors de la saisie d'un formulaire, je cherche à tester certains champs afin de m'assurer que l'utilisateur n'a pas mis n'importe quoi.
Dans ce formulaires il y a, entre autre, des radio button.
Au niveau de mon bouton de validation, je fais appel à une fonction comme suit :
Le debut de la fonction est la suivante :
function Verif_Forms(MonForm)
{
var NbChecked;
var NbBox;
var NbRadio;
// Je recupere le nombre d'elements du formulaire
var NbElements = MonForm.elements.length
// Boucle tous les éléments du formulaire i
for (var l = 0; l < NbElements; l++)
{
Nom_Element = MonForm.elements[l].name;
Champ = MonForm.elements[l];
...
J'ai appliqué une politique de nom de champ de façon à savoir si celui-ci est obligatoire ou facultatif et de quel type il est. Dans le cas des radio buttons, voici l'instruction conditionnelle :
petite précision : dans mon formulaire j'ai 4 radio buttons qui s'appellent toutes Or_Radi
if ((Nom_Element.substring(0,1) "o" || Nom_Element.substring(0,1) "O") && (Nom_Element.substring(1,2) == "r" || Nom_Element.substring(1,2) == "R"))
{
NbChecked = 0;
var test = document.Fiche_acq.Or_radi.length;
alert(test);
// test me renvoie 4 ce qui est normal
var test2 = Nom_Element.length;
alert(test2);
// test2 me renvoie 7 ( soit la longueur du mot Or_radi)
var test3 = Champ.length;
alert(test3);
// test3 me renvoie Undefined
NbRadio = Nom_Element.length;
alert(NbRadio);
for (var k = 0; k < NbRadio; k++)
{
NbChecked = NbChecked +1;
if (document.Fiche_acq.Or_radi[k].checked == true)
{
break;
}
else if (NbChecked = NbRadio)
{
alert("Le champ suivant est obligatoire : " + Champ.id);
Champ.focus();
return false;
}
}
}
}
En fait, je n'arrive pas à compter le nombre de radio du meme nom avec mes variables. Et comme c'est une fonction que je souhaiterai utiliser pour tous mes formulaires, je ne peux pas laisser en dur " document.Fiche_acq.Or_radi.length".
Pourriez vous m'aider un peu ?
misterdarth
Messages postés14Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention10 novembre 2004 7 oct. 2004 à 13:07
Il s'agit effectivement de compter le nombre de radio dans un formulaire. Mais plus particulierement de vérifier si l'utilisateur a bien selectionne une des radio buttons d'un meme groupe.
Par exemple, vous avez le choix entre :
Lundi, Mardi, Mercredi
Ces trois radio buttons on le meme nom ( jour ) mais des valeurs differentes ( respectivement Lundi, Mardi, Mercredi )
Dans ma fonction, je veux pouvoir compter le nombre de radio buttons present sur le formulaire et ayant le meme nom.
Ce que je voudrais c'est comprendre pourquoi je n'arrive pas à compter le nombre de radio dans mon code.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 7 oct. 2004 à 14:25
exemple : le but du jeu :
contrôler si, dans une série de
<HEAD>
<TITLE></TITLE>
<script type="text.javascript">
function ctr()
{var rad="",ok;
for ( n=0;n<frm.elements.length;n++)
{if (frm.elements[n].type=="radio")
{if (rad!=frm.elements[n].name)
{rad=frm.elements[n].name;
ok=false;
for ( var i=0;i<document.getElementsByName(rad).length;i++)
{if (document.getElementsByName(rad)[i].checked)
{ok=true;
i=document.getElementsByName(rad).length; } }
if (!ok) alert(rad+" non coché"); } } } }
</script>
</HEAD>
<form name="frm">
r1-1
r1-2
r1-3
r2-1
r2-2
r2-3
r2-4
r2-5
</form>
</HTML>
</code>
il faut examiner les champs du formulaire,
si c'est un input radio, si c'est la 1ère fois
que l'on "rencontre" son nom, contrôler si
l'un ce ces input radio est coché.
à adapter donc aux besoins ....
Cordialement Bul. [