HTMLデータリストタグがまだ完全にはサポートされていないことを考えると、私が使用した別のアプローチはDojo ToolkitComboBoxです。です。私が調査した他のオプションよりも実装が簡単で、文書化も優れていました。また、既存のフレームワークともうまく連携します。私の場合、CodeigniterとBootstrapに基づく既存のWebサイトにこのコンボボックスを問題なく追加しました。bodyタグではなく、コンボの親要素にDojoテーマ(例:class = "claro")を適用する必要があります。スタイリングの競合を避けるため。
まず、Dojoテーマの1つ(「Claro」など)のCSSを含めます。以下のJSファイルの前にCSSファイルが含まれていることが重要です。
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.9.6/dijit/themes/claro/claro.css" />
次に、CDNを介してjQueryとDojoToolkitを含めます
<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>
次に、Dojoのサンプルコードに従うか、以下のサンプルを使用して、機能するコンボボックスを取得できます。
<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>
要素はそれを行うことができません。