HTML datalist etiketinin hala tam olarak desteklenmediği göz önüne alındığında, kullandığım alternatif bir yaklaşım Dojo Toolkit ComboBox'tır . Araştırdığım diğer seçeneklere göre uygulamak daha kolaydı ve daha iyi belgelendi. Ayrıca mevcut çerçevelerle de iyi oynuyor. Benim durumumda, bu birleşik giriş kutusunu Codeigniter ve Bootstrap tabanlı mevcut bir web sitesine sorunsuz bir şekilde ekledim Dojo temasını (örneğin, class = "claro") body etiketi yerine combo'nun ana öğesine uyguladığınızdan emin olmanız yeterlidir. stil çatışmalarını önlemek için.
İlk olarak, Dojo temalarından biri için CSS'yi dahil edin ('Claro' gibi). CSS dosyasının aşağıdaki JS dosyalarından önce eklenmesi önemlidir.
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.9.6/dijit/themes/claro/claro.css" />
Ardından, jQuery ve Dojo Toolkit'i CDN aracılığıyla dahil edin
<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>
Ardından, Dojo'nun örnek kodunu takip edebilir veya aşağıdaki örneği kullanarak çalışan birleşik bir kutu elde edebilirsiniz .
<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>
Öğe kendi başına bunu yapamaz.