IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Retour visuel pour un formulaire


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Retour visuel pour un formulaire
    Bonjour,

    Dans le formulaire présent sur ma page HTML, je souhaite installer une information visuelle permettant à l'utilisateur de savoir quel champ il est actuellement en train de remplir. Cette fonction est implémentée avec Safari et Google Chrome et je trouve ça très pertinent. Plus de détails et un exemple ICI.

    J'avoue que je n'ai pas tout compris et que je ne suis pas une star en Javascript. Alors ma question est de savoir comment entourer le champ actif d'un petit contour bleu (si possible simplement et pour tous les navigateurs). Si vous connaissez des scripts ou si vous avez des informations pour que j'avance, merci d'avance.

    Laurent.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    Salut,

    Alors pour reconnaitre le champ actif, il y a la fonction onfocus et pour changer le contour, il y a la propriété css border-color. Donc je pense que tu peux démarrer avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" style="border:1px solid #000;" value="toto" onfocus="this.style.borderColor='blue';" onblur="this.style.borderColor='#000';"/>
    le onblur, c'est pour remettre le champ dans l'état initial quand il perd le focus.

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut De manière générique
    Bonjour,

    Merci pour cette réponse et je vais effectivement commencer avec ça. Par contre, je pourrais avoir ce petit effet de "flou" ou de "contour doux" ?

    Enfin, est-ce possible d'appliquer de manière générique cette propriété dès qu'un formulaire est détecté dans une de mes pages ? Sans que je sois obligé d'appliquer ce traitement à la main pour chaque élément de mon formulaire ? A travers un script par exemple ou autre. J'espère avoir été clair

    Merci d'avance, Laurent.

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Tu peux aussi faire ça en CSS

    input:focus { border: 1px solid red; }

    Si tu as besoin de retrocompatibilité avec des vieux navigateurs il doit
    exister des code pour émuler ça pour IE6
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  5. #5
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par enDev
    Enfin, est-ce possible d'appliquer de manière générique cette propriété dès qu'un formulaire est détecté dans une de mes pages ? Sans que je sois obligé d'appliquer ce traitement à la main pour chaque élément de mon formulaire ? A travers un script par exemple ou autre.
    L'idée est plutôt bonne, et pour une autre raison : ça te permettrait d'éviter l'inclusion des propriétés onfocus et onblur dans ton (x)html, qui ne sont pas recommandées (intrusion javascript)
    On peut imaginer un script, inclus dans la balise <head> de ta page par un <link>, qui s'exécuterait au chargement de ta page (événement "load" de window ou body), rechercherait tous les éléments <form> de ta page, et appliquerait sur chacun une autre fonction, qui elle-même chercherait tous les <input> (sauf type hidden éventuellement) de ce <form>, et leur appliquerait les deux gestionnaires d'événements adaptés (un pour "focus" et un pour "blur")
    Comme on dit : "Y'a plus qu'à !"

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    L'idée est plutôt bonne, et pour une autre raison : ça te permettrait d'éviter l'inclusion des propriétés onfocus et onblur dans ton (x)html, qui ne sont pas recommandées (intrusion javascript)
    oui bien sur j'ai fait un exemple compact en 6 4 2

    Enfin, est-ce possible d'appliquer de manière générique cette propriété dès qu'un formulaire est détecté dans une de mes pages ? Sans que je sois obligé d'appliquer ce traitement à la main pour chaque élément de mon formulaire ? A travers un script par exemple ou autre.
    Le lien que tu fournis te permet de faire ça très simplement avec JQuery effectivement. Tu reprends l'exemple du type en remplaçant juste la propriete background par bordercolor sur tes input.

    Par contre, je pourrais avoir ce petit effet de "flou" ou de "contour doux"
    En css2, je ne sais pas si c'est possible, mais pour css3 je sais que c'est possible:
    http://designshack.developpez.com/tu...css3-bordures/
    Par contre, ne t'attend pas à ce que le css3 soit implémenté sur tous les navigateurs avant un bout de temps...

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Merci
    Merci pour cette dernière solution, ça marche parfaitement avec les balises CSS3 (même si tous les navigateurs ne les supportent pas mais pas grave).

    Laurent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/05/2008, 09h10
  2. Norme JavaScript pour les formulaire
    Par rdams dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/09/2005, 14h14
  3. Recherche de composant pour un formulaire
    Par AlexB59 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/06/2005, 13h20
  4. Clavier visuel pour linux ?
    Par Madmac dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 08/06/2005, 18h51
  5. Méthode pour un formulaire de mise à jour
    Par deviltaz dans le forum IHM
    Réponses: 12
    Dernier message: 07/10/2004, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo