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

jQuery Discussion :

Vider un input quand autocomplete est vide


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2018
    Messages : 12
    Par défaut Vider un input quand autocomplete est vide
    Bonjour à tous,

    J'ai fait un système d'autocomplete qui fonctionne bien. L'idée c'est de remplir un input hidden en fonction de ce qui est sélectionné dans l'input avec l'autocomplete.
    Mon problème c'est que si on sélectionne une valeur de l'autocomplete puis qu'on l'efface mon input hiddden garde la dernière valeur sélectionnée. Je voudrais qu'il ce vide.

    Voici mon code :

    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form class="form-horizontal" action="" method="post" enctype="multipart/form-data">
        <input type="text" id="recherche" name="recherche" />
        <input type="hidden" id="hidden" name="hidden" value="" />
        <button type="submit" class="btn btn-success" name="submit"><i class="fa fa-check"></i> Test</button>
    </form>
    JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $('#recherche').autocomplete({
     
    var liste = [{"value":"Hayward Pool Vac Ultra","pid":"65"},{"value":"Alarme Prima protect","pid":"66"},{"value":"Alarme Ocea Protect S","pid":"67"}];    
     
    source : liste,
        minLength : 3,
        select : function(event, ui){
            $('#hidden').val( ui.item.pid );
        }
    });
    Comment faire pour que l'input nommé "hidden" se vide (value='' ou value='0') lorsque l'input nommé "recherche" est vide ?

    Par avance merci à tous.

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    avec onchange ?
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2018
    Messages : 12
    Par défaut
    Oui j'y ai pensé, mais cela risque de vider mon input hidden à chaque changement de valeur de l'autocomplete. Non ?
    A quoi avais tu pensé avec onchange ?
    Je ne suis pas très calé en JS / Jquery

  4. #4
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.getElementById('recherche').addEventListener('keyup', function() {
    document.getElementById('hidden').value = this.value;
    });

    en fait c'etait keyup et non onchange a quoi je pensais, pardon
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    document.getElementById en utilisant jQuery !?!

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2018
    Messages : 12
    Par défaut
    @Doksuri :
    Merci de ta proposition. Keyup n'est peut être pas la solution la plus efficace dans mon cas. Cela risque de faire des "faux positifs" (ex : quelqu'un qui efface qu'une partie du champ autocomplete ou tout simplement qui appuis sur une touche sans faire exprès etc...)

    J'avais tenté ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $("#recherche")
      .change(function () {
        if($("#recherche").val()==''){
            $("#hidden").val('');
        }
      })
      .change();
    Mais ça ne marche pas très bien... Il faut cliquer en dehors de l'input d'autocomplete avant de valider le formulaire pour que le hidden se vide.

  7. #7
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('#recherche').on('keyup', function() {
    $('#hidden').val($(this).val());
    });
    c'est ca la version jquery ?

    je ne comprends pas en quoi c'est genant qu'il efface une partie du champ : le hidden se mettra a jour pareil.
    s'il appuis sur une touche sans faire expres, c'est pareil, ca mettra a jour le hidden.
    => l'event est sur #recherche, pas sur l'integralite de la page
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

Discussions similaires

  1. [WD-2010] TextBox affichant des indications quand elle est vide
    Par Tho69 dans le forum Word
    Réponses: 0
    Dernier message: 29/08/2013, 10h09
  2. [AC-2007] Masquer un sous état quand il est vide
    Par MélanieJ dans le forum IHM
    Réponses: 8
    Dernier message: 27/03/2013, 17h52
  3. tester input type file est vide ou non
    Par sooprano dans le forum Langage
    Réponses: 4
    Dernier message: 20/05/2011, 08h57
  4. Réponses: 2
    Dernier message: 21/05/2007, 09h24
  5. pourquoi l'appli quitte quand elle est vide
    Par firejocker dans le forum MFC
    Réponses: 1
    Dernier message: 10/11/2005, 14h20

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