Враховуючи, що тег даталіста HTML досі не підтримується повністю, альтернативним підходом, який я використав, є Dojo Toolkit ComboBox . Це було легше реалізувати та краще задокументовано, ніж інші варіанти, які я досліджував. Він також чудово грає з існуючими фреймворками. У моєму випадку я додав цей комбобокс до існуючого веб-сайту, який базується на Codeigniter та Bootstrap без проблем. Просто потрібно обов’язково застосувати тему Dojo (наприклад, class = "claro") до батьківського елемента комбо замість тегу body щоб уникнути конфліктів у стилі.
По-перше, включіть CSS для однієї з тем Dojo (наприклад, «Claro»). Важливо, щоб файл CSS був включений до файлів JS нижче.
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.9.6/dijit/themes/claro/claro.css" />
Далі включіть jQuery та Dojo Toolkit через 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>
Далі ви можете просто слідувати зразку коду Доджо або скористатися зразком нижче, щоб отримати працюючий комбобокс.
<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>
елемент цього зробити не може.