Cette page montre de nombreuses astuces pour rendre un formulaire dynamique et attractif, en réaction aux événements générés par l'utilisateur.
Il est nécessaire de bien connaître le principe des formulaires HTML pour tirer partie de ces astuces.
Au sommaire :
Donner le focus à un élément
Changer le libellé d'un bouton
Ne permettre qu'un seul clic sur un bouton
Valider un formulaire par JavaScript
Vider un champ à la prise de focus
Détecter la touche [Entrée] sur un formulaire
Ajouter, insérer et supprimer des lignes dans une liste select
Bascule entre deux listes select
Alimenter un champ texte au passage de la souris
<form name="form1"> <input type="texte" name="champ1"> <input type="button" value="<- Donne le focus" onclick="this.form.champ1.focus()"> <select name="champ2" > <option>Ceci est la ligne n° 1</option> <option>Ceci est la ligne n° 2</option> </select>
<input type="button" value="<- Donne le focus" onclick="this.form.champ2.focus()"> <textarea rows="2" cols="15" name="champ3"></textarea> <input type="button" value="<- Donne le focus" onclick="this.form.champ3.focus()"> </form>
onload="document.forms['nomduform'].elements['nomchamp'].focus()"
<form name="form2"> <input type="button" name="bouton" value='Cliquez-moi !' onclick="this.value='Touché !'"> </form>
<script type="text/javascript"> var nbclic=0 // Initialisation à 0 du nombre de clic function CompteClic(formulaire) { // Fonction appelée par le bouton nbclic++; // nbclic+1 if (nbclic>1) { // Plus de 1 clic alert("Vous avez déjà cliqué ce bouton.\nLe formulaire est en cours de traitement... Patience"); } else { // 1 seul clic alert("Premier Clic."); } } </script> <form name="form3"> <input type="button" name="bouton" value="Cliquez-moi aussi !" onclick="CompteClic(this.form)"> </form>
<script type="text/javascript"> function ValiderMail(formulaire) { if (formulaire.mail.value.indexOf("@",0)<0) {alert("Adresse mail saisie invalide.\nLe formulaire ne sera pas validé.")} else { alert("formulaire validé.\nPour valider un formulaire : formulaire.submit()"); // Pour valider le formulaire en javascript : // formulaire.submit() } } </script> <form name="form4" action=""> Saisissez une adresse mail valide (du type nom@domaine.com) ;<input type="texte" name="mail"> <input type="button" name="bouton" value="Valider" onclick="ValiderMail(this.form)"> </form>
<form name="form5"> <input type="texte" name="login" value='Votre login' onFocus="if (this.value=='Votre login') {this.value=''}"> </form>
L'appui sur [Entrée] déclenche la soumission du formulaire qu'il est possible de détecter avec l'événement onsubmit.
La balise form peut donc s'écrire :
<form name="formulaire" onSubmit="maFonction()">