Initialisation et validation de formulaires
En deux mots...
InitForm est une fonction javascript "maison" qui permet d'initialiser un formulaire à partir d'un objet javascript.
Cet objet peut lui-même avoir été envoyé par le serveur (via JSON), après lecture des paramètres cgi, ou d'un fichier de configuration.
wforms est un biblitohèque opensource permettant entre autres de valider très simplement les formulaires
Expérimenter
si vous voulez modifier ce fichier ou le fichier InitFormTest.js, qui permet d'agir sur les paramètres, il vous faudra travailler sur vos fichiers à vous.
Pour cela, vous devrez taper:
svn export http://lipm-svn.toulouse.inra.fr/svn/lipmutils/trunk/javascript
Portabilité
Cette page web a été testée sur les navigateurs suivants:
- Firefox 2.x sous ubuntu 7.10
- Internet Explorer 6 sous windows 2003
- Internet Explorer 7 sous windows XP
- Opera 9.25 sous Ubuntu 7.10
- Konqueror 3.5.8 sous ubuntu 7.10
Le fichier InitForm.js définit plusieurs fonctions, utiles lorsqu'on travaille sur des formulaires:
- InitForm initialise un formulaire à partir d'un objet javascript. Cet objet peut avoir été lu depuis un fichier de configuration
ou initialisé depuis les paramètres d'un script CGI puis transmis via JSON, etc.
- DisableRadio désactive (disable) les boutons d'un ensemble de radio-boutons. On lui a passé en paramètres la liste des boutons à désactiver,
les autres boutons appartenant au même ensemble seront activés.
- EnableRadio active (enable) les boutons d'un ensemble de radio-boutons. On lui a passé en paramètres la liste des boutons à désactiver,
les autres boutons appartenant au même ensemble seront désactivés.
InitFormTest.js
Dans cette démo, l'objet est défini dans le fichier InitFormTest.js, que vous pouvez modifier à votre guise. Bien sûr, dans la "vraie vie", il viendrait plutôt
du serveur
Les attributs de l'objet passé en paramètre:
Le nom de chaque attribut doit être:
- Le nom d'un champ du formulaire (attribut name): dans ce cas, la valeur de l'attribut permet de définir la valeur par défaut du champ
- Le nom d'un champ de formulaire précédé de hide_: dans ce cas, si la valeur est différente de 0, le champ correspondant sera caché, sa valeur sera celle du champ name (s'il n'est pas spécifié
l'attribut hide_ sera ignoré
- Le nom d'un champ de formulaire de type checkbox précédé de ck_ (cf. ci-dessous)
Les attributs actuels et leurs valeurs
Comment supprimer un champ ?
La fonction InitForm permet de "cacher" certains champs de formulaire. Pour que le champ toto soit caché, il faut:
- Identifier un élément html ancêtre de toto, c'est lui qui sera éventuellement caché (et ses descendants avec lui).
Cet élément peut être toto lui-même, mais ce sera le plus souvent un ancêtre, afin de cacher en même temps le label.
- Faire appartenir cet élément à la classe Removable
- Donner une valeur par défaut à toto en définissant le paramètre correspondant
- Dès lors, si le paramètre hide_toto vaut 1, l'ancêtre sera retiré du formulaire
<span class="Removable" ><input type='text' name='input' /><label> input</label></span><br />
Comment rendre un champ obligatoire ?
Cette fonctionnalité est apportée par la bibliothèque wforms:
- Charger les fichiers wforms/wforms_core.js et wforms/wforms_validation.js
- Faire appartenir l'élément obligatoire à la classe required
<span class="Removable" ><input type='text' name='output' class="required" /><label> output</label></span><br />
Le formulaire initialisé automatiquement