2012-02-28 10 views
9

Al utilizar el plugin javascript de cabecera de Bootstrap, estoy intentando cambiar el atributo de fuente de datos a través del método $ .post de jQuery. Inicialmente, tengo:Problema al actualizar la fuente de datos de cabecera tipográfica de Bootstrap con respuesta posterior

<input type="text" data-provide="typeahead" data-source="["Option 1","Option 2","Option 3"]"> 

Entonces, digamos que se hace clic en un botón y se intenta actualizar los datos de código:

$('button').on('click',function(){ 
    $.post('update.php',function(resp){ 
      $('input').attr('data-source',resp); 
    }); 
    }); 

El resultado resp XHR devuelve una matriz de esta manera:

["One Option","Two Option","Three Option"] 

Estoy descubriendo que esto no actualiza confiablemente la fuente de datos con una nueva matriz que se construyó en la respuesta.

¿Alguien sabe cuál podría ser el problema?

Esto no parece capturar el valor seleccionado. ¿Alguien sabe cómo obtener el valor seleccionado usando typeahead con Bootstrap?

+0

Creo que no recibes muchas respuestas porque no tenemos un error físico al que lidiar. ¿Puedes publicar los resultados de XHR? los params? quizás el valor de resp regrese en una matriz que no es aceptable. ¿No estás citando valores int, y cotizando valores varchar? ese tipo de cosas. Podría ser más útil para tu caso. – Ohgodwhy

+0

Agregué un ejemplo de cómo se ve el XHR –

+0

Puede usar este plugin de escritura anticipada personalizada que permite la carga de datos ajax y el procesamiento de texto personalizado: https://gist.github.com/3287063 – user1307794

Respuesta

31

Finalmente descubrí cómo hacer esto. Es outlined on github here.

Acceda al atributo de datos de la entrada typeahead y modifique directamente la matriz fuente. E.g:

var autocomplete = $('input').typeahead(); 

//where newSource is your own array 
autocomplete.data('typeahead').source = newSource; 
+2

Debe aceptar esta respuesta si su problema está resuelto. –

+0

Por qué las instrucciones no se están ejecutando después de 'autocomplete.data ('typeahead'). Source = newSource;' – Vikram

Cuestiones relacionadas