В HTML-формах часто використовують <select> для вибору пріоритету або терміновості заявки.
Зазвичай на початку додають пункт-підказку:
—– Терміновість ——
Але стандартний варіант має проблему: цей текст з’являється у випадаючому списку, що виглядає неакуратно.
Розберемо:
стандартний <select>
покращений варіант із прихованим placeholder
підсвічування select після вибору
динамічний індикатор кольору і тексту
<select name="terminovist" style="width:100%">
<option>---- Терміновість ------</option>
<option value="low">Низька</option>
<option value="medium">Середня</option>
<option value="high">Висока</option>
<option value="critical">Критична</option>
</select>
Мінуси:
Пункт-підказка з’являється у списку
Його можна обрати повторно
Не видно реального вибору
<select name="terminovist" style="width:100%">
<option value="" selected hidden>---- Терміновість ------</option>
<option value="low">Низька</option>
<option value="medium">Середня</option>
<option value="high">Висока</option>
<option value="critical">Критична</option>
</select>
selected — показує текст за замовчуванням
hidden — не показує пункт у випадаючому списку
value="" — коректний placeholder для форм
<style>
select {
color: #999;
}
select.low { color: green; }
select.medium { color: #555; }
select.high { color: orange; }
select.critical { color: red; font-weight: bold; }
</style>
<select name="terminovist" id="terminovist" style="width:200px">
<option value="" selected hidden>---- Терміновість ------</option>
<option value="low">Низька</option>
<option value="medium">Середня</option>
<option value="high">Висока</option>
<option value="critical">Критична</option>
</select>
<script>
const select = document.getElementById('terminovist');
select.addEventListener('change', function () {
this.className = '';
if (this.value) {
this.classList.add(this.value);
}
});
</script>
<style>
#statusText {
font-weight: 600;
}
.status-box {
width: 16px;
height: 16px;
border-radius: 3px;
background: #ccc;
}
.low { color: #a4ffa4; }
.medium { color: #1efb1e; }
.high { color: yellow; }
.critical { color: red; }
.box-low { background: #a4ffa4; }
.box-medium { background: #1efb1e; }
.box-high { background: yellow; }
.box-critical { background: red; }
</style>
<div style="display:flex; align-items:center; gap:10px;">
<select name="terminovist" id="terminovist" style="width:200px">
<option value="" selected hidden>---- Терміновість ------</option>
<option value="low" style="background: #a4ffa4;">Низька</option>
<option value="medium" style="background: #1efb1e;">Середня</option>
<option value="high" style="background: yellow;">Висока</option>
<option value="critical" style="background: red;">Критична</option>
</select>
<span id="statusText">Терміновість:</span>
<span id="statusBox" class="status-box"></span>
</div>
<script>
const select = document.getElementById('terminovist');
const statusText = document.getElementById('statusText');
const statusBox = document.getElementById('statusBox');
select.addEventListener('change', function () {
// Скидаємо класи
statusText.className = '';
statusBox.className = 'status-box';
if (!this.value) {
statusText.textContent = 'Терміновіст:';
return;
}
// Додаємо колір
statusText.classList.add(this.value);
statusBox.classList.add('box-' + this.value);
// Змінюємо текст на вибране значення
const selectedText = this.options[this.selectedIndex].text;
statusText.textContent = `${selectedText}`;
});
</script>
Результат
Текст «Терміновіст» змінює колір залежно від вибору
Квадратик відображає колір терміновості
Текст динамічно показує вибране значення
При зміні вибору все оновлюється автоматично
Хуки активації та ініціалізації у WordPress: Де і коли створювати таблиці
119
Як створити таблицю в WordPress через functions.php: Повний гід по типам даних MySQL
122
Як створити власне меню в адмінці WordPress: простий гайд для новачків
135
Кастомізація сторінки входу в WordPress: логотип, кольори, фонове зображення та власний CSS
336
Як змінити або повністю прибрати текст у футері адмін-панелі WordPress
163
Кастомізація сторінки входу в WordPress: логотип, кольори, фонове зображення та власний CSS 336
Як виявити блокувальник реклами на сайті за допомогою JavaScript 243
Додавання мета-опису та ключових слів у WordPress 237
Мінімальна сума замовлення WooCommerce 224
Як додати виджет для валют на панель адміністратора WordPress 218
Вау!!! Дуже файний код. Дякую. Останій приклад взагалі классний.
А як зробити обов’язковим для заповнення?
Розміщено: 15.01.2026
Дякую, дуже приємно. Треба прописати “required” в < select >
А також, пропоную Вам подивитись на цю статью, там все є.
<select name="terminovist" id="terminovist" style="width:200px" required> <option value="" selected hidden>---- Терміновість ------</option> <option value="low" style="background: #a4ffa4;">Низька</option> <option value="medium" style="background: #1efb1e;">Середня</option> <option value="high" style="background: yellow;">Висока</option> <option value="critical" style="background: red;">Критична</option> </select>