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

Angular Discussion :

Cliquer manuellement ou programmatiquement sur l'input d'une datalist dynamic: apparition ou non des valeurs


Sujet :

Angular

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Par défaut Cliquer manuellement ou programmatiquement sur l'input d'une datalist dynamic: apparition ou non des valeurs
    Je programme une application angular et utilise une datalist dynamiquement
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input id="inputCodePostalId" type="text"  (click)="method1();" (keyup)="findPostalCode($event)" placeholder="Code Postal" formControlName="codePostal" list="codePostalId" />
    	<datalist id="codePostalId">
    		<option *ngFor="let code of postalCodeList" [value]="code">{{code}}</option>
        </datalist>
    La datalist est alimentée avec les valeurs venant d'une requête
    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
          findPostalCode(event: any) {
            let text = event.target.value;
            if (event.which != 16 && text != null && text.length > 2) {
              this.postalCodeList = [];
              this.produitImmobilierService.getPostalCodes(text).subscribe( 
                    result => {
                                    this.postalCodeList = result; 
                                    setTimeout( function () {
                                        var elem = document.getElementById("inputCodePostalId");
                                        elem.click(); 
                                     }, 500)
                              }
               );
            }
          }
     
    et 
          method1() {
            console.log('ca passe CLICK');
          }

    Quand je rentre 595 par exemple dans l'input, la requête est lancée et après, quand je clique manuellement les valeurs de la datalist apparaissent, mais quand je clique programmatiquement (voir le code au dessus), les valeurs de la datalist n'apparaissent pas

    J'ai aussi essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
          findPostalCode(event: any) {
            let text = event.target.value;
            if (event.which != 16 && text != null && text.length > 2) {
              this.postalCodeList = [];
              const event1 = new Event('click');
              const element = document.getElementById("inputCodePostalId");
              this.produitImmobilierService.getPostalCodes(text).subscribe( 
                         result => {this.postalCodeList = result; 
                         setTimeout( function () {element.dispatchEvent(event1); },   
                                                 500)});
            }
          }

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    ce n'est pas de l'angular
    c'est un problème javascript et de ta librairie javacript datalist, il faut voir avec la doc sur cette librairie

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Par défaut
    j'ai regardé sur ça : https://html.spec.whatwg.org/multipa...talist-element mais ça ne m'aide pas beaucoup

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Par défaut
    c'est quoi le but de la fonctionnalité ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Par défaut
    Le but de la fonctionnalité est de saisir un code postal et je veux qu'après 3 caractères saisis, envoyer une requête pour afficher les codes postaux contenant ces 3 caractères. Pour le code postal, ça ne présente pas un très gros intérêt, mais je vais le faire plus tard pour le nom de la commune

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Par défaut
    pas besoin de reinventer la roue

    suffit de chercher sur internet: angular autocomplete request api

    https://www.freakyjolly.com/angular-.../#.X5v6UYhKiM8

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/03/2020, 13h43
  2. [XL-2013] Utiliser une macro pour ne pas afficher des valeurs à zéro sur un graphique
    Par nekcorp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2019, 16h08
  3. Fonction reset sur un input="image"
    Par zave dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/03/2006, 18h07
  4. cliquer sur un bouton d'une application extérieure
    Par looc 6699 dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 12/12/2005, 17h46
  5. Réponses: 4
    Dernier message: 16/09/2005, 15h38

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