Tengo un formulario de agregar nodo con una referencia de término que utiliza el widget de autocompletar.
Quiero el "tid" del término completado por el usuario que utiliza el widget de autocompletar.
javascript
ajax
sel_space
fuente
fuente
Drupal 7 y 8 proporcionan generación de eventos de autocompletado jQuery sin ningún código personalizado en este momento.
En Drupal 7, el
autocompleteSelect
evento se agregó en el número de Drupal # 365241 . (Clive mencionó que esto estaba en progreso cuando publicó su respuesta).Drupal 8 utiliza el widget de autocompletar jQuery UI . El
autocompleteclose
evento es el evento jQuery UI más similar alautocompleteSelect
evento D7 . En D8, elautocompleteselect
evento jQuery UI también se activará, pero una devolución de llamada Ajax en él no recibirá valores de estado de formulario actualizados.autocompleteclose
las devoluciones de llamada se proporcionan con valores de estado de formulario actualizados, que generalmente es lo que desea.Como lo han indicado las otras respuestas, puede utilizar los datos del evento en el navegador del cliente utilizando un jQuery en el controlador de eventos o Drupal.behaviors ( Drupal 7 , Drupal 8 ). En Drupal 7 usarías el
autocompleteSelect
evento, y en Drupal 8autocompleteclose
.Si necesita el valor en su código PHP, se puede usar una devolución de llamada Ajax. Aquí hay algunas instrucciones sobre cómo hacer esto en Drupal 7 o en Drupal 8 .
fuente
Necesitaba usar un comportamiento para que funcione (gracias al problema mencionado por Clive, y este comentario: https://www.drupal.org/node/365241#comment-9575707 ):
fuente
En Drupal 8 esto se ha movido. Puede anular la funcionalidad con el siguiente código.
Invalida el código en
core/misc/autocomplete.js
.Luego en tu código puedes escuchar
fuente