2017-09-01 24 views
0

La liste d'auto-suggestion fournie par DHTMLX Combo est mise à jour à chaque frappe, mais elle utilise apparemment uniquement la correspondance de préfixe. Comment puis-je modifier la logique pour correspondre n'importe où dans le texte de l'option.Comment générer une liste de suggestions personnalisées dans le combo DHTMLX

E.g. dans le violon ci-dessous:

https://jsfiddle.net/wra8etjw/2/

Je voudrais la suggestion de « Trois » de se présenter, même quand je tape « ee » dans la boîte. J'ai lu la documentation sur custom filtering mais ni l'approche de filtrage personnalisée ni la fonction définie par l'utilisateur ne m'a permis d'obtenir quelque part. J'utilise un combo DHTMLX de manière rudimentaire. A savoir que les options sont présentes sous forme littérale dans le fichier HTML servi depuis le serveur (elles sont plutôt statiques), donc le onDynXLS n'est jamais déclenché (il n'y a pas d'Ajax en cours). Mon autre idée était de capturer la valeur courante que l'utilisateur est en train de taper, l'enregistrer dans une variable globale et ensuite fournir une fonction de filtrage définie par l'utilisateur qui retournerait vrai sur toutes les valeurs dans lesquelles la valeur courante est présente (pas juste comme un préfixe). Cela a également échoué car, apparemment, la fonction de filtrage définie par l'utilisateur n'est appelée que lors du chargement de la page, et non lors de chaque frappe dans le texte d'entrée. De plus, je ne sais même pas lequel utiliser pour capturer les touches dans le texte d'entrée du Combo et obtenir la valeur courante.

Mes questions sont les suivantes:

  1. comment faire la liste des suggestions afficher des valeurs où le texte actuel existe en tant que sous-chaîne partout en eux, et non pas seulement comme préfixe?
  2. comment capturer des frappes dans le texte d'entrée de Combo et obtenir la valeur courante pendant que l'utilisateur tapent?

Répondre

0
  1. comment faire la liste des suggestions montrent des valeurs où le texte actuel existe en tant que sous-chaîne partout dans eux, et pas seulement comme un préfixe?

Utilisez enableFilteringMode('between')

  1. comment capturer les frappes dans le texte d'entrée du Combo et d'obtenir la valeur actuelle que l'utilisateur est en train de taper?

est l'OMI manière la plus simple d'attacher un gestionnaire dans l'élément sous-jacent input le Combo utilise.

Mis à jour violon here

0

comment faire la liste des suggestions montrent des valeurs où le texte actuel existe en tant que sous-chaîne partout en eux, et non pas seulement comme préfixe?

Malheureusement cette fonctionnalité n'est pas disponible sans modification du code source dhtmlxCombo ou vous devez utiliser le mode de filtrage côté serveur, de sorte que vous serez en mesure d'utiliser la solution d'événement onDynXLS.

comment capturer les frappes dans le texte d'entrée du Combo et d'obtenir la valeur actuelle que l'utilisateur est en train de taper?

Vous pouvez essayer d'utiliser l'événement « onKeyPressed »: https://docs.dhtmlx.com/api__dhtmlxcombo_onkeypressed_event.html