Dado que la etiqueta de lista de datos HTML todavía no es totalmente compatible, un enfoque alternativo que utilicé es el Dojo Toolkit ComboBox . Fue más fácil de implementar y mejor documentado que otras opciones que he explorado. También funciona muy bien con los marcos existentes. En mi caso, agregué este cuadro combinado a un sitio web existente que se basa en Codeigniter y Bootstrap sin problemas. Solo debe asegurarse de aplicar el tema Dojo (por ejemplo, class = "claro") al elemento principal del combo en lugar de la etiqueta del cuerpo para evitar conflictos de estilo.
Primero, incluya el CSS para uno de los temas de Dojo (como 'Claro'). Es importante que el archivo CSS se incluya antes que los archivos JS a continuación.
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.9.6/dijit/themes/claro/claro.css" />
A continuación, incluya jQuery y Dojo Toolkit a través de CDN
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/dojo.js"></script>
A continuación, puede seguir el código de muestra de Dojo o usar la muestra a continuación para obtener un cuadro combinado que funcione.
<body>
<div class="claro"><input id="item_name_1" class=""/></div>
<script type="text/javascript">
$(document).ready(function () {
dataStore = [{"id":"43","name":"Domain Name Renewal"},{"id":"42","name":"Hosting Renewal"}];
require(
[ "dojo/store/Memory", "dijit/form/ComboBox", "dojo/domReady!"],
function (Memory, ComboBox) {
var stateStore = new Memory({
data: dataStore
});
var combo = new ComboBox({
id: "item_name_1",
name: "desc_1",
store: stateStore,
searchAttr: "name"},
"item_name_1"
).startup();
});
});
</script>
</body>
<select>
elemento no puede hacer eso.