SELFHTML/Aides à la navigation JavaScript/DOM Référence objet |
forms | |
forms: généralités sur l'utilisation Propriétés:
action (adresse du destinataire lors d'un envoi) Méthodes:
handleEvent() (traiter un événement) 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[#].propriété document.forms[#].méthode() cible= document.forms[0].action; document.forms[0].reset(); |
document.forms["nom_formulaire"].propriété document.forms["nom_formulaire"].méthode cible = document.forms["formulaire_test"].action; document.forms["formulaire_test"].reset(); |
document.;nom_formulaire.propriété document.;nom_formulaire.méthode() cible = document.formulaire_test.action; document.formulaire_test.reset(); |
Vous pouvez adresser des formulaires de trois façons:
document.forms
suivi, entre crochets, du numéro d'ordre du formulaire que vous voulez adresser dans le fichier. Pensez que le compteur commence à 0, c'est à dire qu'il vous faut adresser le premier formulaire avec forms[0]
, le deuxième avec forms[1]
etc... Pour compter, prévaut l'ordre dans lequel les commandes <form>
sont notées dans le fichier.document.forms
. À l'intérieur de ces crochets, notez entre guillemets le nom que vous avez mentionné dans le repère d'ouverture <form>
dans l'attribut name=
lors de la définition du formulaire.document.nom_formulaire
le nom que vous avez mentionné dans le repère d'ouverture <form>
dans l'attribut name=
lors de la définition du formulaire.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 type="text/javascript"> <!-- function confirmation() { var x = window.confirm("Ce formulaire est envoyé à " + document.formulaire_test.action); return x; } //--> </script> </head><body> <form name="formulaire_test" action="mailto:toi-meme@cheztoi.com" onSubmit="return confirmation()"> <input type="text" size="40" name="saisie"> <input type="submit" value="Envoyer"> </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 le gestionnaire d'événement 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 le gestionnaire d'événement qui a appelé la fonction attend ce genre de valeur.
L'utilisation de mailto:
comme cible d'un formulaire occasionne souvent des problèmes. De plus amples détails dans la partie sur les formulaires en tant que courriel.
Vous pouvez également mentionner, comme adresse cible d'un formulaire, un fichier HTML et traiter les données du formulaire avec JavaScript. Tenez ici compte que JavaScript n'a alors accès aux données que si la méthode get
a été employée.
Opera 5.12 affiche dans le protocole file
le texte source du fichier cible.
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 type="text/javascript"> <!-- function type_code() { if(document.formulaire_test.action.indexOf("@") > 0) document.formulaire_test.encoding = "text/plain"; else document.formulaire_test.encoding = "x-application/x-www-form-urlencoded"; return true; } //--> </script> </head><body> <form name="formulaire_test" action="mailto:toi-meme@cheztoi.com" onSubmit="return type_code()"> <input type="text" size="40" name="saisie"> <input type="submit" value="Envoyer"> </form> </body></html> |
L'exemple contient un formulaire. Si l'utilisateur envoie le formulaire en cliquant sur le bouton d'envoi la fonction type_code()
est appelée.
Dans la fonction type_code()
est recherché si, dans la mention action
du formulaire, le signe @ qui trahit une adresse électronique 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 type_code()
renvoie true
car le gestionnaire d'événement 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.
L'utilisation de mailto:
comme cible d'un formulaire occasionne souvent des problèmes. De plus amples détails dans la partie sur les formulaires en tant que courriel..
Sauvegarde le nombre de formulaires définis dans un fichier.
<html><head><title>Test</title> </head><body> <form name="formulaire_test" action="mailto:toi-meme@cheztoi.com"> <input type="hidden" value="Daniel"> <input type="submit" value="Daniel"> </form> <form name="formulaire_test" action="mailto:toi-meme@cheztoi.com"> <input type="hidden" value="Antoine"> <input type="submit" value="Antoine"> </form> <script type="text/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 type="text/javascript"> <!-- function Methode() { if(document.formulaire_test.action.indexOf("@") > 0) document.formulaire_test.method = "post"; else document.formulaire_test.method = "get"; return true; } //--> </script> </head><body> <form name="formulaire_test" action="mailto:toi-meme@cheztoi.com" onSubmit="return Methode()"> <input type="text" size="40" name="saisie"> <input type="submit" value="Envoyer"> </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 électronique 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 le gestionnaire d'événement 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.
L'utilisation de mailto:
comme cible d'un formulaire occasionne souvent des problèmes. De plus amples détails dans la partie sur les formulaires en tant que courriel.
Sauvegarde le nom d'un formulaire.
<html><head><title>Test</title> </head><body> <form name="formulaire_test" action="mailto:toi-meme@cheztoi.com"> <input type="text" size="40" name="saisie"> <input type="submit" value="Envoyer"> </form> <script type="text/javascript"> <!-- document.formulaire_test.saisie.value = document.formulaire_test.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 formulaire_test
.
Sauvegarde quelle fenêtre, dans le cas d'un jeu de cadres, doit devenir active après l'envoi. Cela peut être intéressant pour des fenêtres cadres 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 type="text/javascript"> <!-- function cible() { document.formulaire_test.target = "bas"; return true; } //--> </script> </head><body> <form name="formulaire_test" action="fichier.htm" onSubmit="return cible()"> <input type="text" size="40" name="saisie"> <input type="submit" value="Envoyer"> </form> </body></html> |
L'exemple suppose que le fichier avec le formulaire se trouve dans un jeu de cadres dans lequel il y a une autre fenêtre cadre 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 la sortie HTML se fasse dans la fenêtre cadre 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="formulaire_test" action=""> <input type="text" size="40" name="champ1"><br> <input type="text" size="40" name="champ2"><br> </form> <a href="javascript:document.formulaire_test.reset()">vider 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 groupe de nouvelles qui y est mentionné, la méthode ne fonctionne pas.
<html><head><title>Test</title> </head><body> <form name="formulaire_test" 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 type="text/javascript"> <!-- function on_y_va() { document.formulaire_test.submit(); } window.setTimeout("on_y_va()",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 on_y_va()
est appelée. Celle-ci envoie le formulaire avec submit()
.
elements | |
applets | |
SELFHTML/Aides à la navigation JavaScript/DOM Référence objet |
© 2002 selfhtml@fr.selfhtml.org