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 :

Récupérer valeur datalist


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 77
    Par défaut Récupérer valeur datalist
    Bonjour,

    J'aurais un peu besoin d'aide concernant une datalist. J'ai cette datalist :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <datalist id="searchresults">
        <option value="The Hobbit: The Battle of the Five Armies" name="122917">(2014)</option>
        <option value="The Hobbit: An Unexpected Journey" name="49051">(2012)</option>
        <option value="The Hobbit: The Desolation of Smaug" name="57158">(2013)</option>
        <option value="The Hobbit" name="1362">(1977)</option>
        <option value="The Hobbit" name="99457">(1966)</option>
    </datalist>

    Petite précision, ce n'est pas une datalist "statique". C'est à dire que, en fonction de ce que l'utilisateur tape, j'effectue une requete AJAX qui va chercher les données correspondante. Enfin la n'est pas la question. Mon problème est que j'aimerais recuperer la valeur de l'attribut "name" d'une <option> lorsque l'utilisateur clique sur celle ci. J'aimerais recuperer cette valeur afin de la traiter par la suite. Est ce que cela est possible (car j'ai beaucoup cherché sur internet et les exemples de codes, soit ils ne marchent pas, soit ils ne font pas ce que je veux).

    Merci de votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 77
    Par défaut
    Bon j'ai trouvé quelques pistes, je sais que je suis proche du resultat que je veux mais cela ne marche toujours pas.
    Voilà comment je construit ma <datalist> :

    Code : 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
     
    $("#search").keyup("input", function(e) {
     
                        var val = $(this).val();
                        if(val === "") return;
                        //You could use this to limit results
                        if(val.length < 3) return;
                        console.log(val);
                        $.get("/test/examples/recupererListFilms.php?films="+encodeURIComponent(val), function(res) {
                            var dataList = $("#searchresults");
                            dataList.empty();
                            console.log(res);
                            if(res.Films.length) {
                                for(var i=0, len=res.Films.length; i<len; i++) {
                                    var opt = $("<option></option>").attr("value", res.Films[i][0])
                                                                    .attr("data-id", res.Films[i][1]);
                                    dataList.append(opt);
                                }
                            }
                        },"json");
                    });
    Ce code peut conduire à créer cette datalist :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        <input type="text" name="search" id="search" placeholder="Type Something" list="searchresults" autocomplete="on">
        <datalist id="searchresults">
            <option data-id="286217" value="The Martian"></option>
            <option data-id="116741" value="The Internship"></option>
            <option data-id="122917" value="The Hobbit: The Battle of the Five Armies"></option>
            <option data-id="24428" value="The Avengers"></option>
            <option data-id="156022" value="The Equalizer"></option>
            <option data-id="207703" value="Kingsman: The Secret Service"></option>
        </datalist>
    Puis, pour recuperer la valeur du champs data-id de l'<option> selectionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $("#search").change(function (){
                        var val = $('#search').val()
                        var id = $('#searchresults option').filter(function() {
                            return this.value == val;
                        }).data("id");
                        console.log(id);
                        alert(id)
                    });
    Sauf que, la valeur de data-id que j'obtiens en retour est "undefined" ( celle qui s'affiche quand je fais alert(id) ).

    J'ai vraiment besoin d'aide

  3. #3
    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 : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /*
     * Action après la perte du focus
     * Votre code sur l'événement "blur"
     */
    $("#search").on( "blur", function(){
      var val = $('#search').val()
      var id = $('#searchresults option').filter(function() {
          return this.value === val;
      }).data("id");
      console.log(id);
    });

    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.)

Discussions similaires

  1. [POI]Récupérer valeur cellule suivant format
    Par leminipouce dans le forum Documents
    Réponses: 1
    Dernier message: 27/10/2005, 08h52
  2. Récupérer valeur contrôle en dynamique via requête
    Par nicburger dans le forum Access
    Réponses: 10
    Dernier message: 15/09/2005, 15h41
  3. [ActionScript] Récupérer valeur balise <param />
    Par JohnBlatt dans le forum Flash
    Réponses: 1
    Dernier message: 18/07/2005, 14h50
  4. CR9 - Récupérer valeurs multiples d'un champ paramètre
    Par CR9-Deb dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/07/2005, 16h08
  5. récupérer valeur d'un ID après insertion
    Par rikidi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/08/2003, 22h21

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