36.2 Formulaires (II) input button, input radio, input password, input reset |
See You Why? |
Dans la séquence précédente, nous n'avons abordé que les balises utilisées dans le formulaire de contact que vous apercevez dans chaque bas de page de notre site, à savoir :
Dans cette séquence-ci, il nous reste à aborder les autres balises propres aux formulaires, à savoir :
Pour des besoins de contrôle d'un formulaire JS, vous pourriez être amené à créer un bouton qui ne soit dédié ni à l'envoi du formulaire ni à son ré-initialisation, mais qui appellerait une fonction JS.
L'utilisation de la balise <INPUT TYPE="button"> fera apparaître un bouton simple qui peut appeler une fonction JS.
action (oblig.) |
définit la destination où sont envoyées les données, l'url de la page qui recevra les données du formulaire saisies par l'utilisateur, en règle générale c'est un cgi ou une page dynamique type php ou asp... |
enctype (facult.) |
définit le type d'encodage du formulaire, envoyé au serveur lorsque l'attribut method vaut post... peut valoir 'text/plain' , 'application/x-www-form-urlencoded' ou 'multipart/form-data' |
method | définit la méthode d'appel du script défini dans "action", peut valoir 'get' ou 'post'... |
name (facult. mais quasi oblig.) |
définit le nom du formulaire créé, une page peut contenir plusieurs formulaires qui doivent avoir des "name" différents... le name est généralement attribué par l'attribut NAME de la balise FORM |
target (facult.) |
définit la fenêtre destination dans laquelle s’affichera la réponse du traitement du formulaire. Celle-ci est précisée à l’aide de l’attribut TARGET de la balise FORM. Si non précisé, la valeur par défaut est la page courante qui sera remplacée. |
elements (facult.) |
définit tous les éléments du formulaire. Ce peut être des boutons, des champs, cases à cocher, des boutons radio, etc. |
id (facult.) |
définit une identification unique à une balise d'un document. |
name | value | defaultvalue | size | maxlength | disabled | readOnly | class | style
focus | blur | click
vvv
Si vous avez compris la balise <input> de type 'checkbox', vous avez compris la balise <input> de type 'radio' qui est identique sauf qu'elle ne permet qu'un choix unique de l'internaute visiteur de vos pages.
On peut apprécier plusieurs sports, mais on n'est que d'un seul sexe... on peut aimer plusieurs prénoms, mais n'avoir qu'une seule civilité (M., Mme ou Mlle).
Grâce au bouton radio, un seul choix est possible, même si le nombre de propositions n'est pas limité.
Les syntaxes des <input> de type 'checkbox' et de type 'radio' sont très proches.
checked | détermine si une case à cocher (checkbox) ou un bouton d'option (radio) est coché ou non... |
class | attribue ou détermine le nom d'une classe de style pour formatter la zone de texte... |
defaultvalue | détermine une valeur par défaut de ce champ... très utile en cas de 'reset', c'est-à-dire de réinitialisation du formulaire... |
disabled | rend le champ du formulaire inopérant, ce champ devient grisâtre... |
maxlength | définit la limite du nombre de caractères acceptés pour la réponse... indépendamment de la taille de la zone de texte. |
name | définit tous les éléments du formulaire. Ce peut être des boutons, des champs, cases à cocher, des boutons radio, etc. |
id | définit une identification unique à une balise d'un document. |
readonly | n/a ici détermine qu'une zone multiligne (textarea) est en lecture seule. |
size | définit la taille visible du champ en nombre de caractères. mais la réponse peut être plus longue, mais ne sera plus visible entièrement... |
style | définit le type de style à utiliser (caractères, police, centrage, etc.). |
type | définit le type d'entrée (ici : 'text'), le type d'input. pourrait aussi être password, radio, checkbox, reset, submit, file |
value | définit un texte par défaut, noté dans ce champ... ne pas confondre avec la valeur par défaut. |
range |
définit un espace de valeurs numériques acceptées... souvent situé à tort dans les propriétés d'un <input> de type 'text' c'est une nouvelle balise HTML5 : <input> de type 'range' voir ici |
rows | n/a ici définit le nombre de lignes utilisables dans un TEXTAREA... |
cols | n/a ici définit le nombre de colonnes (ou de caractères) utilisables dans un TEXTAREA... |
name | value | checked | disabled | readOnly | class | style
focus | blur | click
onFocus |
détecte la prise de focus ou l'activation du champ |
onBlur |
détecte la perte de focus ou la désactivation du champ |
onClick | détecte un clic de souris |
onChange | n/a ici détecte une modification du champ |
Si l'utilisateur peut réagir en saisissant une ligne de texte, il pourra aussi le faire sans que son texte ne soit affiché... c'est le propre de l'<input> de type 'password' qui remplace les caractères introduits par des astérisques (*). Cela rend aussi impossible la copie du contenu de cette ligne de saisie. C'est donc l'outil idéal pour entrer des mots de passe... d'où le nom du type d'input.
Pour le reste, elle a les mêmes caractéristiques (propriétés, méthodes et évènements associables) que l'<input> de type 'text' vue dans la séquence précédente.
checked | détermine si une case à cocher (checkbox) ou un bouton d'option (radio) est coché ou non... |
class | attribue ou détermine le nom d'une classe de style pour formatter la zone de texte... |
defaultvalue | détermine une valeur par défaut de ce champ... très utile en cas de 'reset', c'est-à-dire de réinitialisation du formulaire... |
disabled | rend le champ du formulaire inopérant, ce champ devient grisâtre... |
maxlength | définit la limite du nombre de caractères acceptés pour la réponse... indépendamment de la taille de la zone de texte. |
name | définit tous les éléments du formulaire. Ce peut être des boutons, des champs, cases à cocher, des boutons radio, etc. |
id | définit une identification unique à une balise d'un document. |
readonly | n/a ici détermine qu'une zone multiligne (textarea) est en lecture seule. |
size | définit la taille visible du champ en nombre de caractères. mais la réponse peut être plus longue, mais ne sera plus visible entièrement... |
style | définit le type de style à utiliser (caractères, police, centrage, etc.). |
type | définit le type d'entrée (ici : 'text'), le type d'input. pourrait aussi être password, radio, checkbox, reset, submit, file |
value | définit un texte par défaut, noté dans ce champ... ne pas confondre avec la valeur par défaut. |
range |
définit un espace de valeurs numériques acceptées... souvent situé à tort dans les propriétés d'un <input> de type 'text' c'est une nouvelle balise HTML5 : <input> de type 'range' voir ici |
rows | n/a ici définit le nombre de lignes utilisables dans un TEXTAREA... |
cols | n/a ici définit le nombre de colonnes (ou de caractères) utilisables dans un TEXTAREA... |
focus | blur
Si l'internaute visiteur change d'avis et souhaite annuler ses réponses au formulaire, l'utilisation de la balise <INPUT TYPE="reset"> fera apparaître un bouton qui permettra de réinitialiser le formulaire et donc d'effacer toutes les réponses données au formulaire.
checked | détermine si une case à cocher (checkbox) ou un bouton d'option (radio) est coché ou non... |
class | attribue ou détermine le nom d'une classe de style pour formatter la zone de texte... |
defaultvalue | détermine une valeur par défaut de ce champ... très utile en cas de 'reset', c'est-à-dire de réinitialisation du formulaire... |
disabled | rend le champ du formulaire inopérant, ce champ devient grisâtre... |
maxlength | définit la limite du nombre de caractères acceptés pour la réponse... indépendamment de la taille de la zone de texte. |
name | définit tous les éléments du formulaire. Ce peut être des boutons, des champs, cases à cocher, des boutons radio, etc. |
id | définit une identification unique à une balise d'un document. |
readonly | n/a ici détermine qu'une zone multiligne (textarea) est en lecture seule. |
size | définit la taille visible du champ en nombre de caractères. mais la réponse peut être plus longue, mais ne sera plus visible entièrement... |
style | définit le type de style à utiliser (caractères, police, centrage, etc.). |
type | définit le type d'entrée (ici : 'text'), le type d'input. pourrait aussi être password, radio, checkbox, reset, submit, file |
value | définit un texte par défaut, noté dans ce champ... ne pas confondre avec la valeur par défaut. |
range |
définit un espace de valeurs numériques acceptées... souvent situé à tort dans les propriétés d'un <input> de type 'text' c'est une nouvelle balise HTML5 : <input> de type 'range' voir ici |
rows | n/a ici définit le nombre de lignes utilisables dans un TEXTAREA... |
cols | n/a ici définit le nombre de colonnes (ou de caractères) utilisables dans un TEXTAREA... |
Peu souvent présenté dans un cours ou un tutoriel, la balise <input type="range"...> permet d'introduire une valeur numérique comprise entre deux valeurs limites : un minimum et un maximum ce qui lui vaut les attributs min=0 et max=20 par exemple.
Pas étonnant qu'on ne la trouve pas souvent, c'est une nouvelle balise propre au HTML5 et que tous les navigateurs ne maitrisent pas encore... d'où prudence à l'emploi. Ne soyez pas étonnés tantôt de découvrir un curseur semblable au volume d'une radio, tantôt un input de type text qui ne vérifie rien... :-(
La syntaxe correcte de cette balise est :
<input class="score" type="range" min=0 max=20 name="pronostic">
qui fera apparaître sur VOTRE ORDINATEUR :
Rappelons-nous ce qui a été dit dans l'historique du JS. Le modèle DOM, spécialement conçu pour les langages orientés objet, a créé une propriété getElementByID() qui retourne un objet HTML à partir de son 'id', défini dans la propriété 'id' de la balise de l'objet.
On vous avait averti de ne pas confondre deux propriétés assez proches : la propriété id et la propriété name. Il est cependant possible de retrouver tous les objets d'une page en utilisant la propriété getElementByName().
Ainsi, au lieu de retenir toute la hiérarchie des objets d'une page, à savoir : document.forms["formul_deux"].elements[0].type
ou encore document.forms["formul_deux"].elements["prenom"].type
,
il suffit de connaitre l'ID' de l'objet (nous avions proposé d'employer le même nom pour 'name' et pour 'ID', mais l'ID' doit être unique pour une page, alors que le 'name' ne caractérise qu'un objet dans un seul formulaire) pour pouvoir écrire : document.getElementByID("prenom").type
Le lecteur aura remarqué l'emploi de parenthèses (comme une fonction) et plus de crochets (comme pour les tableaux).
voir suite >>>
voir suite >>>