Tout JavaScript.com - Scripts, Tutoriaux, Forums pour webmasters et développeurs
Retour à l'accueil
Rechercher :    

Les indispensables
Magic Menu
Les meilleurs scripts
Les forums
Les tutoriaux
La référence JavaScript
Les actus du net
Les petites annonces

Shopping
Le guide complet
Hébergement web

Les javascripts
Les plus vus
Les mieux notés
La boutique

Les tutoriaux
Introduction javascript
La structure javascript
Les limites de javascript
Les popups
Les formulaires
Le DHTML
Les cookies
Les frames
Les maths
Les chaînes de caractères
Les expressions régulières
Débugger un script
AJAX / XMLHTTPRequest
Introduction au PHP
Javascript et PHP
Traiter les données PHP
Intro base de données
Optimiser ses développements
Tous les tutoriaux

Les services
Les questions fréquentes
Les forums | Le chat
L'annuaire de sites
Le livre d'or
Contacts
A propos du site
La newsletter
 Inscription à la newsletter
HTML - Texte

Les partenaires
Beauté-test
Révélateur.com
jquery













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 :
1 - Donner le focus à un élément
2 - Changer le libellé d'un bouton
3 - Ne permettre qu'un seul clic sur un bouton
4 - Valider un formulaire par JavaScript
5 - Vider un champ à la prise de focus
6 - Détecter la touche [Entrée] sur un formulaire
7 - Ajouter, insérer et supprimer des lignes dans une liste SELECT
8 - Bascule entre deux listes SELECT
9 - Empêcher la saisie dans un champ
10 - Faire clignoter un bouton
11 - Alimenter un champ texte au passage de la souris

1 - Donner le focus (curseur) à un élément de formulaire
Le premier champ texte a le focus au chargement de la page.
Cliquez sur les boutons pour donner le focus aux autres éléments. La prise de focus est possible pour tous les types d'objets.



Le script
<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">
   <INPUT type="button" value="<- Donne le focus" onClick="this.form.champ3.focus()">
</FORM>

Pour donner le focus à un champ de formulaire à l'ouverture de la page, il faut ajouter cette ligne dans la balise BODY :
onLoad="document.forms['nomduform'].elements['nomchamp'].focus()"

2 - Changer le libellé d'un bouton
Cliquez le bouton pour changer son libellé.
Le script
<FORM name="form2">
   <INPUT type="button" name="bouton" value='Cliquez-moi !' onClick="this.value='Touché !'">
</FORM>

3 - Ne permettre qu'un seul clic sur un bouton
Accepte le premier clic sur le bouton et empêche les suivants.
Utile pour éviter de recevoir 3 fois le même message quand un visiteur s'excite sur le bouton "Envoyer" !
Le script
Dans l'entête de la page
<SCRIPT language="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>

Dans le corps
<FORM name="form3">
   <INPUT type="button" name="bouton" value="Cliquez-moi aussi !" onClick="CompteClic(this.form)">
</FORM>

4 - Valider un formulaire par JavaScript
Il est souvent utile de vérifier la saisie d'un formulaire avant de le valider.
L'idéal est de créer un bouton (de type "button" et pas "submit") qui appelle une fonction javascript qui contrôle la saisie et soumet ou non le formulaire.
Voyons un exemple simple de test de saisie d'un email.
Saisissez une adresse mail valide (du type nom@domaine.com)
Le script
Dans l'entête de la page

<SCRIPT language="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>
Dans le corps de la page
<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>

5 - Vider un champ à la prise de focus
Par exemple, un champ de saisie de login avec à l'origine "Votre login".
Si vous cliquez sur le champ, "Votre login" disparaît.
Le script
<FORM name="form5">
   <INPUT type="texte" name="login" value='Votre login' onFocus="if (this.value=='Votre login') {this.value=''}">
</FORM>

6 - Détecter la touche [Entrée] sur un formulaire
Utile dans les formulaires de recherche, où la plupart des utilisateurs tapent [Entrée] pour valider la recherche, sans cliquer sur le bouton "Rechercher".
Entrez un mot :

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()">

7 - Ajouter, insérer et supprimer des lignes dans une liste
Ce script permet d'ajouter dynamiquement des éléments dans une liste, sans rechargement de la page (nécessite des versions 4 et + de Netscape ou Internet Explorer).
Entrez le libellé et la valeur dans les champs ci-dessous, cliquez sur Ajouter ou Insérer.
Libellé : - Valeur :

Sélectionnez une ligne de la liste pour voir le détail



Le bouton Ajouter ajoute à la fin de la liste la ligne.
Le bouton Insérer insère la nouvelle ligne avant la ligne sélectionnée.
Le bouton Supprimer la sélection supprime la ligne sélectionnée dans la liste.
Le bouton Supprimer tout supprime toutes les lignes.

Télécharger le script

8 - Bascule entre deux listes
Ce script est une extension du n°7 (nécessite des versions 4 et + de Netscape ou Internet Explorer).
Imaginons que vous deviez choisir des activités parmi une liste proposée (J'ai écrit cette page au mois d'août !) :

Activités proposées


Activités retenues
Télécharger le script


9 - Empêcher la saisie dans un champ
Dès que la curseur souris arrive sur ce champ, il est enlevé. Cela rend impossible la saisie ou la modification de son contenu.

L'astuce est d'utiliser l'événement onFocus qui détecte l'arrivée du curseur dans le champ.
Voici la ligne décrivant la zone :
<INPUT type="text" value="Non modifiable" name="champ" onFocus="this.blur()">
La méthode focus() appliquée au champ retire le curseur.

Avec cette ligne, il est possible de rediriger le curseur vers un autre champ du formulaire :
<INPUT type="text" value="Non modifiable" name="champ" onFocus="this.form.champ2.focus()">
La méthode focus() appliquée à champ2 active le curseur.


10 - Faire clignoter un bouton
Pour attirer l'attention, il est possible de faire clignoter le texte d'un bouton.
Ce script permet de paramétrer le texte à afficher et le délai de clignotement. Remarquez que le temps d'affichage du bouton vide est plus court.
Télécharger le script du bouton clignotant

11 - Alimenter un champ texte au passage de la souris
Pour alimenter un champ texte au passage de la souris sur un objet (ici une cellule d'un tableau), jbvillier, propose cette solution :
<script language=javascript>
/* ti script by jbvillier@yahoo.fr */
function focusOn() {
  document.forms["form11"].champtexte.value = "Hé hop" ;
}
</script>

<form name="form11"> <table width="66%" height="28%" border="1">
<tr>
  <td width="57%" height="26" onMouseOver="focusOn()">passez la souris ici</td>
  <td width="43%"><input type="text" name="champtexte"></td>
</tr>
</table>
</form>

Ce qui donne

passez la souris ici

Voir des exemples de contrôles de saisies dans un formulaire


| © Tout JavaScript.com 1999-2005 | Scripts | Tutoriaux | Forums | Référence | Magic Menu V2 | Mailociraptor | Petites annonces informatiques |


Edité par DevTribu sarl  Google
Serveur dédié vps : Page générée en 6 msec
24/05/2013 18:45:03 - OB = off