SELFHTML/Quickbar
JavaScript
Référence objet
![]() |
forms |
![]() |
Propriétés:
Méthodes:
Sous-objets: |
![]() |
Avec l'objet forms, qui se trouve sous l'objet document
dans la hiérarchie JavaScript, vous avez accès aux formulaires définis
dans un fichier HTML.
Les manières suivantes pour adresser un formulaire déterminé avec JavaScript sont à votre disposition:
document.forms[#].propriete document.forms[#].methode() cible = document.forms[0].action; document.forms[0].reset(); |
document.forms["nomformulaire"].propriete document.forms["nomformulaire"].methode cible = document.forms["formulairetest"].action; document.forms["formulairetest"].reset(); |
document.nomformulaire.propriete document.nomformulaire.methode() cible = document.formulairetest.action; document.formulairetest.reset(); |
Vous pouvez adresser des formulaires de trois façons:
Les propriétés et méthodes de l'objet forms ne concernent que les parties
constituantes du formulaire global comme par exemple la méthode de codification. Pour accéder
à des champs de saisie distincts, des boutons etc. vous disposez de
l'objet elements
avec ses sous objets
![]() ![]() |
Sauvegarde la valeur qui figure lors de la définition du formulaire dans l'attribut action=, donc une mention mailto ou un programme serveur qui traite les données.
<html><head><title>Test</title> <script language="JavaScript"> function confirmation() { x = window.confirm("Ce formulaire est destiné à " + document.formulairetest.action); return x; } </script> </head><body> <form name="formulairetest" action="mailto:toimeme@ton.com" onSubmit="return confirmation()"> <input type=text size=40 name="entree"> <input type=submit value="envoi"> </form> </body></html> |
L'exemple contient un formulaire. Si l'utilisateur envoie le formulaire en
cliquant sur le bouton d'envoi, la fonction confirmation() est
appelée, parce que l' Event-Handler onSubmit=
est noté dans le repère d'introduction <form>. Celui-ci
recherche la valeur renvoyée par la fonction confirmation(). Si
la valeur est true, le formulaire est envoyé, si elle est false
il ne l'est pas.
Dans la fonction confirmation() l'utilisateur
reçoit, affichée dans une boite de dialogue avec la méthode confirm,
la valeur affectée à la mention de formulaire action. Les fenêtres
Confirm ont toujours deux boutons, un pour confirmer et l'autre pour interrompre.
Le bouton pour confirmer renvoie lorsqu'il est cliqué la valeur true,
le bouton interrompre renvoie la valeur false. La valeur renvoyée
est sauvegardée dans l'exemple dans la variable x. Celle-ci à
son tour est renvoyée par la fonction confirmation() car l'Event-Handler
qui a appelé la fonction attend ce genre de valeur.
![]() ![]() |
Sauvegarde la valeur qui figure lors de la définition du formulaire dans l'attribut encoding=, donc par exemple "text/plain".
<html><head><title>Test</title> <script language="JavaScript"> function typecode() { if(document.formulairetest.action.indexOf("@") > 0) document.formulairetest.encoding = "text/plain"; else document.formulairetest.encoding = "x-application/x-www-form-urlencoded"; return true; } </script> </head><body> <form name="formulairetest" action="mailto:toimeme@ton.com" onSubmit="return typecode()"> <input type=text size=40 name="entree"> <input type=submit value="envoi"> </form> </body></html> |
L'exemple contient un formulaire. Si l'utilisateur envoie le formulaire en cliquant sur le bouton d'envoi la fonction typecode() est appelée
Dans la fonction typecode() est recherché si, dans la mention action du formulaire, le signe @ qui trahit une adresse E-Mail apparaît. Si oui, le type de codage est réglé sur text/plain, si non, pour le type de codage habituel pour programmes CGI x-application/x-www-form-urlencoded. La fonction typecode() renvoie true car l'Event-Handler onSubmit= noté dans le repère d'introduction <form> qui a appelé la fonction attend cette valeur. Le formulaire n'est envoyé que si la valeur retournée est true.
Pour rechercher un ou plusieurs signes dans une chaîne de caractères comme
dans l'exemple avec la méthode indexOf(), lisez la partie sur l'objet string.
![]() ![]() |
Sauvegarde le nombre de formulaires définis dans un fichier.
<html><head><title>Test</title> </head><body> <form name="formulairetest" action="mailto:toimeme@ton.com"> <input type=hidden value="Daniel"> <input type=submit value="Daniel"> </form> <form name="formulairetest" action="mailto:toimeme@ton.com"> <input type=hidden value="Antoine"> <input type=submit value="Antoine"> </form> <script language="JavaScript"> document.write(document.forms.length + " formulaires"); </script> </body></html> |
Dans l'exemple, deux petits formulaires sont définis. Ensuite est écrit dans le fichier,
pour la démonstration, à l'aide de document.write()
combien de formulaires y sont définis.
![]() ![]() |
Sauvegarde la valeur qui figure lors de la définition du formulaire dans l'attribut method= - en principe, "get" ou "post".
<html><head><title>Test</title> <script language="JavaScript"> function Methode() { if(document.formulairetest.action.indexOf("@") > 0) document.formulairetest.method = "post"; else document.formulairetest.method = "get"; return true; } </script> </head><body> <form name="formulairetest" action="mailto:toimeme@ton.com" onSubmit="return Methode()"> <input type=text size=40 name="entree"> <input type=submit value="envoi"> </form> </body></html> |
L'exemple contient un formulaire Si l'utilisateur envoie le formulaire en cliquant sur le bouton d'envoi la fonction Methode() est appelée.
Dans la fonction Methode() est recherché si dans la mention action du formulaire le signe @ qui trahit une adresse E-Mail apparaît. Si oui, la méthode d'envoi est réglée sur post, si non, sur get. La fonction Methode() renvoie true car l'Event-Handler onSubmit= noté dans le repère d'introduction <form>. qui a appelé la fonction attend ce genre de valeur. Le formulaire n'est envoyé que si la valeur retournée est true.
Pour rechercher un ou plusieurs signes dans une chaîne de caractères comme
dans l'exemple avec la méthode indexOf(), lisez la partie sur l'objet string.
![]() ![]() |
Sauvegarde le nom d'un formulaire.
<html><head><title>Test</title> </head><body> <form name="formulairetest" action="mailto:toimeme@ton.com"> <input type=text size=40 name="entree"> <input type=submit value="envoi"> </form> <script language="JavaScript"> document.formulairetest.entree.value = document.formulairetest.name; </script> </body></html> |
L'exemple contient un formulaire avec un champ de saisie. Sous le formulaire, se trouve un script qui écrit pour le contrôle le nom du formulaire dans le champ de saisie. Dans l'exemple le nom est formulairetest.
![]() ![]() |
Sauvegarde quelle fenêtre, dans le cas d'un jeu de frames, doit devenir active après l'envoi. Cela peut être intéressant pour des fenêtres frames ou pour une deuxième fenêtre séparée. Au cas où un programme CGI renvoie du code HTML au navigateur, par exemple avec un "merci pour l'envoi du formulaire", alors la sortie se fait dans la fenêtre qui porte le nom mentionné.
<html><head><title>Test</title> <script language="JavaScript"> function cible() { document.formulairetest.target = "bas"; return true; } </script> </head><body> <form name="formulairetest" action="/cgi-bin/formulairetest.pl" onSubmit="return cible()"> <input type=text size=40 name="entree"> <input type=submit value="envoi"> </form> </body></html> |
L'exemple suppose que le fichier avec le formulaire se trouve dans un jeu de frames dans lequel il y a une autre fenêtre frame du nom de bas. Le fichier d'exemple contient un formulaire. Si l'utilisateur envoie le formulaire en cliquant sur le bouton d'envoi la fonction cible() est appelée.
Dans la fonction cible() il est spécifié que le retour de code HTML du programme CGI formulairetest.pl se fasse dans la fenêtre frame bas.
![]() ![]() |
Transmet un évènement à un élément qui est en mesure de réagir à
l'évènement. Fonctionne exactement comme pour handleEvent()
pour l'objet window (s'y reporter pour des informations plus précises).
![]() ![]() |
Efface toutes les saisies dans un formulaire et a le même effet qu'un bouton ayant été défini en HTML avec type=reset.
<html><head><title>Test</title> </head><body> <form name="formulairetest"> <input type=text size=40 name="champ1"><br> <input type=text size=40 name="champ2"><br> </form> <a href="javascript:document.formulairetest.reset()">initialiser le formulaire</a> </body></html> |
L'exemple contient un formulaire avec deux champs de saisie. Sous le formulaire se trouve un lien. En cliquant sur le lien, toutes les entrées saisies dans le formulaire sont effacées.
![]() ![]() |
Envoie un formulaire et a le même effet qu'un bouton ayant été défini en HTML avec type=submit. Cependant, cette méthode JavaScript ne fonctionne depuis Netscape 3.0 qu'uniquement si le formulaire est traité par un programme, c'est à dire si, dans le repère d'ouverture <form> pour la mention action=, un programme CGI, par exemple, est appelé. Si c'est une adresse de courrier électronique ou un newsgroups qui y est mentionné, la méthode ne fonctionne pas.
<html><head><title>Test</title> </head><body> <form name="formulairetest" action="/cgi-bin/estime.pl" method=get> <input type=text size=40 name="champ1"><br> <input type=text size=40 name="champ2"><br> </form> <script language="JavaScript"> function onyva() { document.formulairetest.submit(); } window.setTimeout("onyva()",60000); </script> </body></html> |
L'exemple contient un formulaire avec des champs de saisie. En dessous se trouve un script JavaScript qui lance un compte à rebours avec la méthode setTimeout(). Après 60000 millièmes de secondes, donc après une minute, la fonction onyva() est appelée. Celle-ci envoie le formulaire avec submit().
![]() | |
après:![]() |
![]() |
avant:![]() |
![]() |
SELFHTML/Quickbar
JavaScript
Référence objet
Serge François, 13405@free.fr