JavaScript UI Development

JavaScript’te Düzenlenebilir Açılır Listeler Oluşturma

Spread the love

JavaScript’te tamamen işlevsel ve özelleştirilebilir düzenlenebilir bir açılır kutu oluşturmak, önceden tanımlanmış bir listeden seçim yapmaya ve yeni değerler girmeye olanak tanıyarak kullanıcı etkileşimini geliştirir. Bu öğreticide iki yaklaşım ele alınmaktadır: HTML, CSS ve JavaScript kullanarak manuel bir uygulama ve Select2 kitaplığını kullanan kolaylaştırılmış bir yaklaşım.

İçerik Tablosu

Yöntem 1: Özel Düzenlenebilir Bir Açılır Kutu Oluşturma

Bu yöntem, ayrıntılı kontrol ve altta yatan mekaniğin derinlemesine anlaşılmasını sağlar. Yazma için bir giriş alanı ve seçenekleri görüntülemek için gizli bir sıralanmamış liste birleştireceğiz.

Öncelikle, HTML yapısını oluşturalım:


<div class="combobox">
<input type="text" id="comboboxInput" placeholder="Seçin veya yazın...">
<ul id="comboboxList"></ul>
</div>

Ardından, stil için CSS ekleyin:


.combobox {
position: relative;
display: inline-block;
}
.combobox input {
width: 200px;
padding: 5px;
border: 1px solid #ccc;
}
.combobox ul {
position: absolute;
list-style: none;
padding: 0;
margin: 0;
border: 1px solid #ccc;
background-color: white;
display: none; /* Varsayılan olarak gizli */
}
.combobox li {
padding: 5px;
cursor: pointer;
}
.combobox li:hover {
background-color: #f0f0f0;
}

Son olarak, işlevi işlemek için JavaScript:


const input = document.getElementById('comboboxInput');
const list = document.getElementById('comboboxList');
let options = ['Seçenek 1', 'Seçenek 2', 'Seçenek 3'];

input.addEventListener('input', () => {
list.innerHTML = '';
const filter = input.value.toLowerCase();
options.forEach(option => {
if (option.toLowerCase().includes(filter)) {
const item = document.createElement('li');
item.textContent = option;
item.addEventListener('click', () => {
input.value = option;
list.style.display = 'none';
});
list.appendChild(item);
}
});
list.style.display = input.value ? 'block' : 'none';
});

input.addEventListener('focus', () => {
list.style.display = 'block';
});

input.addEventListener('blur', () => {
setTimeout(() => {
list.style.display = 'none';
}, 100);
});

// Yeni seçenek işlevi ekle (örnek)
input.addEventListener('keydown', (event) => {
if (event.key === 'Enter' && !options.includes(input.value)) {
options.push(input.value);
list.style.display = 'none';
input.value = ''; //ekledikten sonra girişi temizle
}
});

Yöntem 2: Select2 Kitaplığını Kullanma

Select2, süreci önemli ölçüde basitleştirir. Select2 CSS ve JavaScript dosyalarını projenize ekleyin (bunları resmi Select2 web sitesinden indirebilir veya bir CDN kullanabilirsiniz). Ardından, select öğenizde Select2’yi başlatın:


<select id="mySelect">
<option value="Option 1">Seçenek 1</option>
<option value="Option 2">Seçenek 2</option>
<option value="Option 3">Seçenek 3</option>
</select>

<script>
$('#mySelect').select2({
tags: true, // Yeni seçenek eklemeyi etkinleştirir
allowClear: true // Seçimi temizlemeye olanak tanır
});
</script>

tags: true seçeneği, açılır kutuyu düzenlenebilir yapar ve kullanıcıların ilk listede bulunmayan yeni seçenekler eklemelerine olanak tanır. allowClear: true seçeneği, seçimi temizlemenin bir yolunu sağlar.

Düzenlenebilir Açılır Kutunuzu Geliştirme

Seçtiğiniz yönteme bakılmaksızın, şu geliştirmeleri göz önünde bulundurun:

  • Kalıcılık: Seçenekleri, oturumlar arasında saklamak için yerel depolama veya sunucu tarafı bir veritabanı kullanarak saklayın.
  • Doğrulama: Geçersiz girişleri önlemek için giriş doğrulaması uygulayın.
  • Stil: Uygulamanızın tasarımına sorunsuz bir şekilde entegre olmak için CSS kullanarak görünümü özelleştirin.
  • Uzaktan Veri Kaynakları: Büyük veri kümeleri için, AJAX çağrıları kullanarak seçenekleri dinamik olarak alın.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir