Bonjour,
je souhaite réaliser un input text, qui a un texte par défaut qui soit d'un style différent que la saisie (grisé et en italique), et qui disparaisse quand on comment à saisir le champ :
http://img689.imageshack.us/img689/5823/mockupb.png
Le premier champ represente l'état initial et le deuxième champ represente l'état après que l'utilisateur est saisie "Place de la Nation, Paris"
Quelle est la bonne pratique ?
J'ai vu sur un site grand public :
- au chargement de la page, le texte qui doit être grisé est dans l'attribut "title".
- à la fin du chargement de la page, un script Javascript rempli la valeur de l'input par le champs title et assigne une class CSS qui grise le texte.
- à chaque evenement javascript (onFocus, etc.), on met le comportement souhaité (par exemple, onFocus : si la class css est grisé, alors on supprime la classe et la valeur de l'input).
- lors de la validation du formulaire, on vérifie que avec la class CSS que le champ n'est pas grisé, et si c'est le cas on renvoie un message d'erreur.
Ca me semble un peu crade comme solution.
Une autre solution est de superposer un div contenant le texte grisé à l'input. Mais pour faire disparaitre celui-ci de l'input au début de la saisie, n'y a t il pas un risque que ça ne soit pas la bonne div qui intercepte l'evenement javascript ?
Si quelqu'un connait une solution élégante au pbm, je le remercie d'avance de son aide !
Modifié par cescarment (03 Mar 2011 - 13:48)
je souhaite réaliser un input text, qui a un texte par défaut qui soit d'un style différent que la saisie (grisé et en italique), et qui disparaisse quand on comment à saisir le champ :
http://img689.imageshack.us/img689/5823/mockupb.png
Le premier champ represente l'état initial et le deuxième champ represente l'état après que l'utilisateur est saisie "Place de la Nation, Paris"
Quelle est la bonne pratique ?
J'ai vu sur un site grand public :
- au chargement de la page, le texte qui doit être grisé est dans l'attribut "title".
- à la fin du chargement de la page, un script Javascript rempli la valeur de l'input par le champs title et assigne une class CSS qui grise le texte.
- à chaque evenement javascript (onFocus, etc.), on met le comportement souhaité (par exemple, onFocus : si la class css est grisé, alors on supprime la classe et la valeur de l'input).
- lors de la validation du formulaire, on vérifie que avec la class CSS que le champ n'est pas grisé, et si c'est le cas on renvoie un message d'erreur.
Ca me semble un peu crade comme solution.
Une autre solution est de superposer un div contenant le texte grisé à l'input. Mais pour faire disparaitre celui-ci de l'input au début de la saisie, n'y a t il pas un risque que ça ne soit pas la bonne div qui intercepte l'evenement javascript ?
Si quelqu'un connait une solution élégante au pbm, je le remercie d'avance de son aide !
Modifié par cescarment (03 Mar 2011 - 13:48)