ACTUALIZACIÓN: Finalmente me di cuenta de esto, el siguiente código debería hacer el truco. Por algún motivo, la devolución de llamada change
no funcionaba, pero las devoluciones de llamada close
& select
sí. El uso de select
es mejor, ya que también se llamará a close
si el campo pierde el foco.
$(function() {
$("#searchField").autocomplete({
source: "values.json",
select: function(event, ui) {
$("#searchForm").submit(); }
});
});
Otra actualización: Ok, también hay un problema con el select
de devolución de llamada, que es que por defecto (en el código anterior) si se recorre el autocompletar desplegable con el teclado, y seleccione con el ingreso clave, la entrada se cambia antes de enviar el formulario. Sin embargo, si lo selecciona con el mouse, el formulario se envía justo antes de que se modifique la entrada, por lo que el valor enviado es exactamente lo que escribió el usuario (no lo que seleccionó del menú desplegable de autocompletar). El woraround que parece funcionar es:
$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) {
$("#searchField").val(ui.item.label);
$("#searchForm").submit(); }
});
en resumen: defina una función de devolución de llamada y envíe el formulario en la función de devolución de llamada con javascript. Realmente no sé cómo hacer esto en el código. – Natrium