J'ai un formulaire d'ajout de nœud avec une référence de terme qui utilise un widget de saisie semi-automatique.
Je veux que le terme rempli soit rempli par l'utilisateur à l'aide du widget de saisie semi-automatique.
javascript
ajax
sel_space
la source
la source
Drupal 7 et 8 fournissent la génération d'événements de saisie semi-automatique jQuery sans aucun code personnalisé pour le moment.
Dans Drupal 7, l'
autocompleteSelect
événement a été ajouté dans le problème Drupal # 365241 . (Clive a mentionné que c'était en cours lorsqu'il a publié sa réponse.)Drupal 8 utilise le widget de saisie semi-automatique jQuery UI . L'
autocompleteclose
événement est l'événement jQuery UI le plus similaire à l'autocompleteSelect
événement D7 . Dans D8, l'autocompleteselect
événement jQuery UI sera également déclenché, mais un rappel Ajax sur celui-ci ne recevra pas de valeurs d'état de formulaire mises à jour.autocompleteclose
les rappels sont fournis avec des valeurs d'état de formulaire mises à jour, ce qui est généralement ce que vous voulez.Comme les autres réponses l'ont indiqué, vous pouvez utiliser les données d'événement dans le navigateur client en utilisant un gestionnaire d'événement jQuery on ou Drupal.behaviors ( Drupal 7 , Drupal 8 ). Dans Drupal 7, vous utiliseriez l'
autocompleteSelect
événement, et sur Drupal 8autocompleteclose
.Si vous avez besoin de la valeur dans votre code PHP, un rappel Ajax peut être utilisé. Voici quelques instructions sur la façon de procéder dans Drupal 7 ou Drupal 8 .
la source
J'avais besoin d'utiliser un comportement pour le faire fonctionner (grâce au problème mentionné par Clive, et ce commentaire: https://www.drupal.org/node/365241#comment-9575707 ):
la source
Dans Drupal 8, cela a changé. Vous pouvez remplacer la fonctionnalité avec le code suivant.
Remplace le code dans
core/misc/autocomplete.js
.Ensuite, dans votre code, vous pouvez écouter
la source