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:

Le fichier InitForm.js définit plusieurs fonctions, utiles lorsqu'on travaille sur des formulaires:

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:

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:

<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:

<span class="Removable" ><input type='text' name='output' class="required" /><label> output</label></span><br />

Le formulaire initialisé automatiquement

output est un champ obligatoire !

Trois champs text, ils peuvent être retirés tous les trois, le second est requis:



Cliquez sur un bouton de la première ligne et un bouton de la seconde

Pour que certains boutons soient inactifs, on appelle la fonction DisableRadio ou EnableRadio/. C'est à la fin du fichier InitFormTest.js

Le fichier InitFormTest.js propose un petit objet permettant de synchroniser les deux lignes. Cet objet n'a rien de générique, il est simplement là pour montrer ce qu'il est possible de faire


choisissez (un seul choix possible)

Attention, le paramètre hide_liste vous permettra de faire disparaitre la liste, il est impossible de faire disparaitre une des options.

choisissez (plusieurs seul choix possibles)

Les options présélectionnées sont fournies avec le format: 1#3#5

Attention, le paramètre hide_listem vous permettra de faire disparaitre la liste, il est impossible de faire disparaitre une des options.

Cochez ou décochez les cases que vous voulez

Les cases à cocher sont les plus casse-pieds à gérer: en effet, si une case n'est pas cochée, elle n'apparaitra pas dans la liste des paramètres du cgi appelé. En conséquence de quoi, si la valeur par défaut de la classe est 'cochée' et que l'utilisateur la décoche, le script cgi aura bien du mal à s'en apercevoir. La solution apportée par InitForm est la suivante:

Dans l'exemple qui suit, la case box6 n'est pas gérée de cette manière car le paramètre ck_box6 n'est pas fourni: le champ hidden ck_box6 n'est tout simplement pas utilisé. Donc si vous voulez que ce mécanisme soit activé, vous devez fournir une valeur par défaut

Attention Si vous utilisez Webdevelopper sous firefox, et si vous activez l'option Forms/Display Forms Details, cela risque de ne pas fonctionner, parce que les champs cachés ne sont justement plus marqués comme "hidden" (ce qui permet de les voir).