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 :

Evenement et saisie automatique d'un champ Input


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut Evenement et saisie automatique d'un champ Input
    COUIN !

    Petite colle, en rapport avec un formulaire.

    Sur un champ input text, correspondant au nom, je le colorise en rouge si le champs est vide lors de la validation des données.

    Je souhaite le repasser en blanc lorsque le nom n'est plus vide.
    J'ai donc ajouté un événement de type onkeyup, qui appelle une fonction repassant le champs en blanc si sa valeur n'est pas vide.
    Impeccable, oui, mais en fait non.

    Si le visiteur a déjà saisi son nom précédemment, et que la saisie automatique est activée sur son navigateur, le fait de cliquer sur le champ propose ce qu'il a déjà mis.
    Si il clique sur cette saisie, le champ se rempli mais le visiteur n'ayant pas agit sur le clavier, le onkeyup n'est donc pas utilisé.

    J'ai tenté un onmouseover, mais cela ne marche pas (car le pointeur est généralement en dessous du champ, lorsqu'on sélectionne une entrée déjà saisie.
    onmouseout, idem, le pointeur n'est sur le champ à ce moment.

    Bon certes c'est un peu du détail mais si il y a une solution simple ce serait bien.

    Le cas contraire, j'adopterais un autre scénario :
    - Blanchir le champs lorsqu'on clique dessus et observer sa value quand on le quitte : Si vide, il repasse en rouge.

    Merki
    Couin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 177
    Points
    17 177
    Par défaut
    Salut

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <!DOCTYPE html>
    <html lang="fr"> <!-- Radio74.html version 5 -->
    	<head>
    		<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    		<title>Ici mon titre</title>
    		<style>
                            /* TAGs comentaire dans la partie style */
                    </style>
    		<script>
                            'use strict'; // force la déclaration des variables
                            function model() {
                                    let elem = document.getElementById("rechercherquoi");
                                    console.log("elem.value.length = " + elem.value.length);
                                    if(elem.value.length ==0){
                                            elem.style.backgroundColor = "red";
                                    }else{
                                            elem.style.backgroundColor = "white";
                                    }
                            }//----------------------fin de la function model -----------------------------------
                    </script>
    	</head>
    	<body>
    		<!-- la partie affichée sur la page -->
    		Bonjour le monde
    					<input type="text" id="rechercherquoi" onkeyup="model()">
    		<script>
                            //---------------------- du javascript complémentaire -----------------------------------
                    </script>
     
    	</body>
    </html>
    Sinon, mes ton code pour voir la différence.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    Les événements onblur et onfocus seraient-il la solution?
    https://developer.mozilla.org/fr/doc...andlers/onblur
    https://developer.mozilla.org/fr/doc...ndlers/onfocus

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    les événements change ou input : https://developer.mozilla.org/fr/docs/Web/Events/change

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut
    Hellooo

    Merci pour vos réponses

    Alors pour :
    inkeyup : ne fonctionne pas si on écrit pas manuellement dans le champ.
    onfocus : une fois qu'on a choisie une saisie automatique, le fond revient au blanc quand on revient sur le champ après l'avoir quitté.
    onblur : le fond revient au blanc qu'une fois qu'on quitte le champ.

    Pour change et input, j'ai adapté mais j'ai obtenu des résultats un peu bizarroïdes et hasardeux lol

    Cependant, en m'inspirant du script de ProgElecT, je suis arrivé au résultat à escompté, en utilisant setInterval, je lance la fonction "model" qui vérifie la valeur du champ toutes les 200 ms et le mets en blanc dès qu'il n'est pas vide.

    Donc bah du coup, même si pas obtenu de la manière que je voulais, le résultat escompté étant là, je passe en résolu

    A bientôt !
    Couin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    pourquoi ne pas passer par l'écouteur oninput ?
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input oninput="this.style.backgroundColor = this.value ? 'transparent' : '#ECD';" style="background-color:#ECD" required>

  7. #7
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Points : 67
    Points
    67
    Par défaut
    Hello,

    OnInput avec Required détecte effectivement si il y a une entrée dans le champ, mais le cadre s'affichant lorsque le champs est vide se fait de manière ombrée autour du champs et non nette sur le bord intérieur comme je le souhaite.
    J'ai testé quelques codes css pour modifier les propriétés de style de "required" mais sans succès.

    Merki
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr
    Nouvelle version de Jingle Palette sur jinglepalettereloaded.com

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    OnInput avec Required détecte effectivement si il y a une entrée dans le champ,
    1000 pardons, le required n'a rien avoir ici, je n'aurais pas du le mettre pour ne pas embrouiller

    On a donc simplement :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input oninput="this.style.backgroundColor = this.value ? 'transparent' : '#ECD';" style="background-color:#ECD">

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

Discussions similaires

  1. Saisie automatique de deux champs
    Par Isabelled dans le forum IHM
    Réponses: 3
    Dernier message: 29/05/2013, 15h52
  2. [AC-2002] Saisie automatique dans un champ texte
    Par Jean-Luc80 dans le forum IHM
    Réponses: 2
    Dernier message: 19/07/2009, 06h39
  3. Empêcher la saisie automatique dans un champ
    Par zooffy dans le forum ASP.NET
    Réponses: 6
    Dernier message: 14/01/2008, 12h51
  4. Réponses: 14
    Dernier message: 27/11/2006, 13h07
  5. saisie automatique pour un champs
    Par god0126 dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2006, 10h57

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