HTML 데이터 목록 태그가 아직 완전히 지원되지 않는다는 점을 감안할 때 제가 사용한 대체 접근 방식은 Dojo Toolkit ComboBox입니다. 입니다. 내가 살펴본 다른 옵션보다 구현하기 쉽고 더 잘 문서화되었습니다. 또한 기존 프레임 워크와도 잘 어울립니다. 제 경우에는 Codeigniter와 Bootstrap을 기반으로하는 기존 웹 사이트에 문제없이이 콤보 박스를 추가했습니다. 본문 태그 대신 콤보의 부모 요소에 Dojo 테마 (예 : class = "claro")를 적용해야합니다. 스타일 충돌을 방지합니다.
먼저 Dojo 테마 중 하나에 대한 CSS를 포함합니다 (예 : 'Claro'). CSS 파일이 아래의 JS 파일보다 먼저 포함되는 것이 중요합니다.
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.9.6/dijit/themes/claro/claro.css" />
다음으로 CDN을 통해 jQuery 및 Dojo Toolkit 포함
<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>
요소가 그렇게 할 수 없습니다.