Voici des "petits" cours de javascript que j'avais, à l'origine, écrit pour expliquer un tant soit peu le fonctionnement du javascript à des amis.
Comme il ne faut pas réinventer la roue, je conseillerais de lire cette page qui est bien plus fournie :
Introduction au javascript par la Mozilla Foundation
LES FORMULAIRES
-name
-method
-action
par defaut la methode est post (jsuis pas sur) et l'action est sur la page elle meme!
donc en javascript on peut acceder a un formulaire de plusieurs manières différentes :
par
document.nom_du_formulaire si on a mis une valeur a l'attribut name
sinon de manière plus générique par dcument.forms[n] ou [n] est l'indice du formulaire dans
la page, c'est a dire que si il n'y a qu'un seul formulaire l'indice est 0
=>
document.forms[0]
sinon ca permet d'acceder aux autres formulaires dans la page :
document.forms[0]
document.forms[1] etc....
de la meme maniere on peut savoir le nombre de formulaire present dans une page par :
document.forms.length ...
ATTENTION ca va retourner une valeur qui sera toujours superieure a l'indice ..
par exemple das le cas d'un seul formulaire, document.forms.length retournera 1
mais si on veut appeler le formulaire on doit faire :
var i=document.forms.length;
var formulaire=document.forms[i-1];
donc on vient de voir comment acceder a un formulaire
il faut le voir comme un objet qui possede des attribut et des elements.
Ces elements sont les differents bouton, input,select et autres.....
chaque element possede differents attributs :
il y en a un qui est commun c'est l'attribut name (comme pour le formulaire)
sinon pour chacun il y a :
INPUT TYPE=TEXT et INPUT TYPE=PASSWORD
-name
-value
-size
-maxlength
INPUT TYPE=HIDDEN
-name
-value
INPUT TYPE=CHECKBOX
-name
-value
-checked
INPUT TYPE=RADIO
-name
-value
-checked
TEXTAREA
-name
-row
-cols
l'objet textarea est un peu different des autres car
il faut le declarer <textarea row=10 cols=10>mettre sa valeur par defaut</textarea>
SELECT
-name
-size
-multiple
Chaque select a plusieurs options
-OPTION
-value
-selected
-text
INPUT TYPE=BUTTON
-name
-value
INPUT TYPE=SUBMIT
-name
-value
INPUT TYPE=RESET
-name
-value
En javascript, on peut parcourir les elements du formulaire de manière générique et
de manière spécifique :
-pour la maniere spécifique il suffit d'appeller l'element par son nom :
document.monformulaire.nom_de_mon_element
ou
document.forms[n].nom_de_mon_element
- de maniére générique, c'est comme le forms[n] :
document.monformulaire.elements[n] quand on connait la position de l'element
ou
document.forms[n].elements[n]
pareil qu'avec le formulaire on peut savoir le nombre d'element du formulaire par :
document.monformulaire.elements.length
ou
document.forms[n].elements.length
En parcourant les differents elements on peut recuperer leur attributs :
document.forms[n].elements[n].type renvoi le type (text, button, radio, checkbox ...)
document.forms[n].elements[n].name renvoie le nom de l'element.
pour recuperer le "value" des elements qui possede cet attribut ( a l'exception des option du select)
il suffit de faire
document.forms[n].elements[n].value
mais il y a des subtilités :
dans le cas de bouton radio qui ont tous le meme nom comment savoir lequel est coché?
les radio button possede un index qui permet de retrouver chaque bouton
par exemple
document.monformulaire.monradiobutton[1]
indique le bouton numero 2 (et oui on commence a compter a 0 en Javascript)
ou
document.forms[n].elements[n][1]
mais ca ne nous indique toujours pas lequel est coché!!!! et quel est sa valeur
pour le savoir il faut parcourir la 'collection' des radio pour savoir lequel est coché! :
var L=document.monformulaire.monradio.length; // me dit combien de boutons
for (i=0; i<L;i++) {
if (document.monformulaire.monradio[i].checked==true) j=i;
}
mon radio coché est le numero (j+1) d'indice j
et donc pour avoir sa valeur il suffit de faire :
var valeur=document.monformulaire.monradio[j].value;
si je fais
var cochee=document.monformulaire.monradio[1].checked;
il me retournera true ou false si il est coché ou non
de meme pour un checkbox pour savoir si il est coché on procede de la meme maniere
en faisant
if(document.monformlaire.moncheckbox.checked==true);
on sait si il est coché ...
si je fais
var check=document.monformlaire.moncheckbox.checked;
il me retournera true ou false si il est coché ou non
et si on a true il suffit de faire
var valeur=document.monformulaire.moncheckbox.value;
pour avoir la valeur.
Pareil pour les select il faut d'abord savoir quel est l'options qui est
selectionnée!
en faisant :
var sel=document.monformulaire.monselect.options.selectedIndex;
je sais quel est l'"indice" de l'option selectionnée,
donc en faisant
var valeur=document.monformulaire.monselect.options[sel].value; j'obtients la valeur
de l'option selectionnée... pour les select on peut aussi recupérer le text associé a chaque options
par
var texte=document.monformulaire.monselect.options[sel].text;
mais ca ne marche pas comme ca si le select est de type multiple,
il faut faire un boucle comme pour les radio button :
var len=document.monformulaire.monselect.options.length;
var lesvaleur;
for (i=0;i<len;i++) {
if (document.monformulaire.monselect.options[i].selected==true)
lesvaleur=" "+document.monformulaire.monselect.options[i].value;
}
et à la fin les valeur contient toutes les valeurs selectionnées separées par un espace....