Bliss.js предоставляет удобный и лаконичный интерфейс для работы с элементами формы, включая checkbox и radio. Основная идея заключается в том, что библиотека позволяет манипулировать этими элементами как обычными объектами DOM, добавляя удобные методы для прослушивания событий и управления состоянием.
Для выборки элементов используется метод $:
// Получение одного checkbox по id
var checkbox = $('#agree');
// Получение всех radio кнопок с одним name
var radios = $$('input[name="gender"]');
$ возвращает первый найденный элемент, а $$
— коллекцию элементов. Эти методы можно комбинировать с цепочкой Bliss
для дальнейших операций.
В Bliss.js состояние checkbox управляется свойством
checked и методом prop:
// Установка состояния
checkbox.prop('checked', true);
// Проверка состояния
if (checkbox.prop('checked')) {
console.log('Checkbox выбран');
}
// Инвертирование состояния
checkbox.prop('checked', !checkbox.prop('checked'));
Метод prop универсален для любых свойств DOM, что делает
код компактным и читаемым.
Для отслеживания изменений состояния используется метод
on:
checkbox.on('change', function() {
console.log('Состояние изменилось на:', this.checked);
});
Для группы радио кнопок удобно использовать один обработчик на всех элементах:
radios.on('change', function() {
console.log('Выбранное значение:', this.value);
});
Bliss.js автоматически корректно передаёт контекст this
в обработчик, что упрощает работу с элементами.
Выбор радио кнопки из группы осуществляется через свойство
checked:
// Установка выбора
radios[0].prop('checked', true);
// Поиск выбранного элемента
var selected = radios.filter(r => r.prop('checked'))[0];
console.log('Выбрано:', selected.value);
Метод filter в Bliss.js работает аналогично стандартному
Array.prototype.filter, но позволяет применять его прямо к
коллекции элементов, полученной через $$.
Bliss.js поддерживает создание элементов с помощью $ и
передачи параметров:
// Создание checkbox
var newCheckbox = $('<input>', { type: 'checkbox', id: 'subscribe', checked: true });
// Создание radio
var newRadio = $('<input>', { type: 'radio', name: 'color', value: 'red' });
Эти элементы можно сразу вставлять в DOM:
$('#form').append(newCheckbox, newRadio);
Для доступа к атрибутам используется метод attr:
// Получение value
var val = newRadio.attr('value');
// Изменение value
newRadio.attr('value', 'blue');
Для checkbox часто используется сочетание
prop('checked') и attr('value') для
синхронизации состояния с данными.
Синхронизация состояния с данными:
var preferences = {
newsletter: true,
notifications: false
};
$('#newsletter').prop('checked', preferences.newsletter);
$('#notifications').prop('checked', preferences.notifications);
$$('input[type="checkbox"]').on('change', function() {
preferences[this.id] = this.checked;
});
Реализация выбора цвета через radio:
$$('input[name="color"]').on('change', function() {
document.body.style.backgroundColor = this.value;
});
checked через
prop — простое управление состоянием.this.prop и attr для
синхронизации состояния и атрибутов с данными.Bliss.js превращает работу с checkbox и radio в чётко
структурированный и лаконичный процесс, избавляя от громоздких
стандартных манипуляций через document.querySelector и
addEventListener.