2011-01-15 26 views
8

Uso la función de autocompletar jQuery ui.jQuery UI autocompletar actualización de datos

var colors; 

$(document).ready(function(){ 
     loadColors(); 
     $('#empf').autocomplete(colors); 
} 

function loadColors(){ 
colors = new Array(getNumColor()); 
//in a loop save the colors to array using colors[i] = ... 
} 

function addColor(){ 
    ... 
    color[n] = color; 
} 

Cuando el usuario ingresa un nuevo color, se guarda en la matriz de colores. Paso al formulario de autocompletar, pero los datos ingresados ​​no se pueden enviar hasta que actualice la página.

¿Alguna idea de cómo hacer que el nuevo color se pueda usar para autocompletar?

+0

Asegúrate de publicar tu código * actual * en las preguntas ... hay bastantes errores en el código que publicaste, la pregunta tiene el enunciado * está * funcionando, así que lo atribuiré a un código diferente en la pregunta, por favor comente la respuesta si he entendido mal y * no * está funcionando actualmente. –

Respuesta

21

Al actualizar el color, es necesario actualizar también la source that autocomplete uses, así:

function addColor() { 
    //add colors 
    $('#empf').autocomplete("option", { source: colors }); 
} 

Here's a sample demo doing this, la adición de un color y la actualización de la fuente de autocompletar una vez por segundo.

+0

gracias, funciona ahora! –

+0

@ArtWorkAD - welcome :) –

+0

Uso autcompletar pero con una función de devolución de llamada para el evento 'seleccionar'. ¿Qué tal hacer esto pero no volver a configurar la función de devolución de llamada? ¿Funcionaría el evento de devolución de llamada o desaparecería? – madtyn

0

He intentado con la solución de Nick Craver, que parece completamente lógica. Tal vez, es porque estoy usando una cadena URL en lugar de una matriz como la 'fuente'. Lamentablemente, su solución no realiza una actualización en vivo para los datos ajax devueltos. Con el fin de actualizar una fuente de datos Ajax, he encontrado que las siguientes obras:

element.autocomplete("option","source",url); 
element.autocomplete("search"); 

creo que se requiere el método de 'búsqueda' para la cadena o URL de la fuente ajax tipos.

Cuestiones relacionadas