En la versión 2.1 of Twitter Bootstrap, la capacidad de pasar una función de devolución de llamada en las opciones de Typeahead was added. Sin embargo, he estado teniendo dificultades para hacer que esto funcione con una llamada jQuery ajax.Uso de TypeAhead con jQuery y Bootstrap 2.1
Esto es lo que tengo hasta ahora.
HTML
<form class="form-horizontal" action="">
<fieldset>
<div class="control-group">
<label class="control-label" for="myTypeahead">User</label>
<div class="controls">
<input type="text" id="myTypeahead" />
</div>
</div>
</fieldset>
</form>
JavaScript (establecido en la función jQuery $(document).ready
)
$("#myTypeahead").typeahead({
source: function (query, process) {
$.ajax({
type: "POST",
url: ServiceURL + "/FindUsers",
data: "{ SearchText: '" + query + "' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r1) {
var users = [];
if (r1.d.Records) {
$(r1.d.Records).each(function (index, val) {
users.push(val.User.Name);
});
console.log(users);
process(users);
}
}
});
}
});
Cuando escribo test
(o Test
) en la entrada TYPEAHEAD, no se muestran los resultados TYPEAHEAD , pero los datos que se registran desde la variable users
se ven así:
["Test User A", "Test User B", "Test User C", "Test User D", "Test User E", "Test User F"]
¿Por qué no funcionaría?
También, como referencia, aquí está el Typeahead JavaScript for Bootstrap.
Extendí esto a todo el diálogo incluyendo también ".modal", así que: .modal, .modal-body { overflow: visible; } – epicsmile