2010-06-16 28 views
5

Estoy usando jQuery UI Autocomplete 1.8.1 con Jquery 1.4.2 y tengo este problema.JQuery UI Autocompletar, el valor después de seleccionar (por el mouse) es diferente de (por las teclas de flecha)

Al principio, no puedo forzar el valor del campo de entrada Autocompletar, así que esto no es un gran problema.

Pero tengo problema con él:

que no actúa de manera similar cuando un usuario select una opción utilizando el ratón para utilizar las flechas del teclado. Cuando se utiliza el teclado, todo está bien y el valor aparece después de seleccionar en el cuadro de texto de entrada, pero cuando se usa el mouse, se pega con el valor anterior (escrito a máquina) y no con el seleccionado.

Cómo controlar esto (valor de cuadro de texto después de seleccionar)? y por qué hay diferentes comportamientos?

P.S: cambiar el valor del cuadro de entrada dentro de la función select es inútil ya que no se puede hacer.

Respuesta

0

no pude resolverlo de la manera prefecto, por lo que he logrado ocultar el campo de búsqueda en select y mostrar otra personalizado div que se oculta en haga clic en el foco pasa a la búsqueda jQuery UIinput presentada de nuevo.

+0

Sé que esto es viejo, pero estoy teniendo un problema similar. cuidado de compartir un jsfiddle? – MatteS

2

Tuve un problema similar a esto.

Al usar el teclado, el foco del cuadro de texto se pierde, pero al hacer clic el foco vuelve al cuadro de texto.

¿Podría ser que algo sucede en el foco del campo de entrada que se está reiniciando?

1

El sollution era detener evento preventDefault() en el interior de autocompletar de devolución de llamada enfoque

2

Usted puede hacer algo como esto:

$('#input').autocomplete({ 
    source: items, 
    focus: function(event, ui) { var text = ui.item.value; 
    $('#input').val(text); 
    return false; 
    } 
}); 

Al pasar el elemento con el ratón, llenará el cuadro de texto con el valor actual, y al hacer clic en ella el valor será ya aparece en el cuadro de texto

3

o puede agregar en selecto

select: function(event, ui) { 
    $('#input').val(ui.item.value); 
} 
Cuestiones relacionadas