Les zones de saisie basiques

Parent Previous Next

Les zones de saisie basiques



Bien, retour au concret.

Nous allons passer en revue les différentes balises HTML permettant de saisir du texte dans un formulaire.
Il faut savoir qu'il y a deux zones de texte différentes :


 

 

Zone de texte monoligne

La figure suivante montre à quoi ressemble une zone de texte monoligne.

Une zone de texte monoligne



Pour insérer une zone de texte dans une ligne, on va utiliser la balise <input />.

On retrouvera cette balise plusieurs fois dans la suite de ce chapitre. À chaque fois, c'est la valeur de son attribut type qui va changer.


Pour créer une zone de texte à une ligne, on doit écrire :


<input type="text" />


Ce n'est pas encore suffisant : il faut donner un nom à votre zone de texte. Ce nom n'apparaît pas sur la page mais il vous sera indispensable par la suite. En effet, cela vous permettra (en PHP par exemple) de reconnaître d'où viennent les informations : vous saurez que tel texte est le pseudo du visiteur, tel texte est le mot de passe qu'il a choisi, etc.

Pour donner un nom à un élément de formulaire, on utilise l'attribut name. Ici, on va supposer qu'on demande au visiteur de rentrer son pseudo :


<input type="text" name="pseudo" />


Essayons donc de créer un formulaire très basique avec notre champ de texte :


<form method="post" action="traitement.php">

   <p><input type="text" name="pseudo" /></p>

</form>

Comme d'habitude, je vous invite fortement à essayer ce code chez vous afin d'observer le résultat.


Les libellés


Cette zone de texte est bien jolie mais si votre visiteur tombe dessus, il ne sait pas ce qu'il doit écrire. C'est justement le rôle de la balise <label> :


<form method="post" action="traitement.php">

    <p>

        <label>Votre pseudo</label> : <input type="text" name="pseudo" />

    </p>

</form>


Ce code donne exactement le résultat que vous avez pu observer à la figure précédente.

Mais cela ne suffit pas. Il faut lier le label à la zone de texte.
Pour ce faire, on doit donner un nom à la zone de texte, non pas avec l'attribut name mais avec l'attribut id (que l'on peut utiliser sur toutes les balises).


Un name et un id sur le champ ? Cela ne va-t-il pas faire double emploi ?


Si, un peu. Personnellement, je donne la même valeur au name et à l'id, cela ne pose pas de problème.

Pour lier le label au champ, il faut lui donner un attribut for qui a la même valeur que l'id du champ… Le mieux est de le voir sur un exemple :


<form method="post" action="traitement.php">

   <p>

       <label for="pseudo">Votre pseudo</label> : <input type="text" name="pseudo" id="pseudo" />

   </p>

</form>


Essayez de cliquer sur le texte « Votre pseudo » : vous allez voir que le curseur se place automatiquement dans la zone de texte correspondante.


Quelques attributs supplémentaires


On peut ajouter un certain nombre d'autres attributs à la balise <input /> pour personnaliser son fonctionnement :

Dans l'exemple suivant, la zone de texte contient une indication permettant de comprendre ce qu'il faut saisir ; le champ fait 30 caractères de long mais on ne peut écrire que 10 caractères maximum à l'intérieur :


<form method="post" action="traitement.php">

    <p>

        <label for="pseudo">Votre pseudo :</label>

        <input type="text" name="pseudo" id="pseudo" placeholder="Ex : Zozor" size="30" maxlength="10" />

    </p>

</form>


Testez vous-mêmes le résultat pour observer le comportement du champ. En attendant, voici le rendu du champ dans son état initial en figure suivante.

Un champ de texte avec une indication (placeholder)



Zone de mot de passe

Vous pouvez facilement faire en sorte que la zone de texte se comporte comme une « zone de mot de passe », c'est-à-dire une zone où on ne voit pas à l'écran les caractères saisis. Pour créer ce type de zone de saisie, utilisez l'attribut type="password".

Je complète mon formulaire. Il demande maintenant au visiteur son pseudo et son mot de passe :


<form method="post" action="traitement.php">

   <p>

       <label for="pseudo">Votre pseudo :</label>

       <input type="text" name="pseudo" id="pseudo" />

        

       <br />

       <label for="pass">Votre mot de passe :</label>

       <input type="password" name="pass" id="pass" />

        

   </p>

</form>


Testez la zone de mot de passe : vous verrez que les caractères ne s'affichent pas à l'écran, comme sur la figure suivante.

Une zone de saisie de mot de passe



Zone de texte multiligne

Pour créer une zone de texte multiligne, on change de balise : nous allons utiliser <textarea> </textarea>.

Comme pour tout autre élément du formulaire, il faut lui donner un nom avec name et utiliser un label qui explique de quoi il s'agit.


<form method="post" action="traitement.php">

   <p>

       <label for="ameliorer">Comment pensez-vous que je pourrais améliorer mon site ?</label><br />

       <textarea name="ameliorer" id="ameliorer"></textarea>

   </p>

</form>


Et voici le résultat en image (figure suivante) !

Une (petite) zone de saisie multiligne


Comme vous pouvez le constater, c'est un peu petit ! Heureusement, on peut modifier la taille du<textarea> de deux façons différentes.

 

 


Pourquoi ouvre-t-on la balise <textarea> pour la fermer juste après ?


Vous pouvez pré-remplir le <textarea> avec une valeur par défaut. Dans ce cas, on n'utilise pas l'attribut value : on écrit tout simplement le texte par défaut entre la balise ouvrante et la balise fermante !


<form method="post" action="traitement.php">

   <p>

       <label for="ameliorer">

       Comment pensez-vous que je puisse améliorer mon site ?

       </label>

       <br />

        

       <textarea name="ameliorer" id="ameliorer" rows="10" cols="50">

       Améliorer ton site ?!

       Mais enfin ! Il est tellement génialissime qu'il n'est pas nécessaire de l'améliorer !

       </textarea>      

   </p>

</form>


Et voici le résultat à la figure suivante.

Une zone de saisie multiligne pré-remplie

Créé avec HelpNDoc Personal Edition: Générer des livres électroniques EPub facilement