Библиотека SweetAlert позволяет создавать всплывающие окна с красивым интерфейсом для подтверждения действия пользователя. Одной из самых распространённых задач является подтверждение пользователем какого-либо действия, например, удаление элемента или отправка формы. В таких случаях SweetAlert упрощает создание удобных и красивых диалогов, заменяя стандартные, часто непривлекательные браузерные окна подтверждения.
Для создания простого окна с подтверждением используется метод
Swal.fire(). По умолчанию это окно представляет собой
базовую модель с текстом и двумя кнопками: “Ок” и “Отмена”. Пример:
Swal.fire({
title: 'Вы уверены?',
text: 'Вы не сможете отменить это действие!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Да, удалить',
cancelButtonText: 'Отмена'
}).then((result) => {
if (result.isConfirmed) {
console.log('Действие подтверждено');
} else {
console.log('Действие отменено');
}
});
В данном примере:
Когда пользователь выбирает один из вариантов, метод
then() получает результат в виде объекта, где доступен флаг
isConfirmed. Если пользователь подтвердил действие, этот
флаг будет равен true, в противном случае —
false.
Часто необходимо выполнить какое-то действие, например, удаление
элемента или отправку данных, только если пользователь подтвердил своё
намерение. В этом случае результат, полученный в обработчике
then(), проверяется на наличие подтверждения. Пример:
Swal.fire({
title: 'Удалить элемент?',
text: 'Это действие необратимо!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Да, удалить',
cancelButtonText: 'Отмена'
}).then((result) => {
if (result.isConfirmed) {
// Удаление элемента
deleteItem();
} else {
console.log('Удаление отменено');
}
});
В этом примере после подтверждения пользователем будет вызвана
функция deleteItem(), выполняющая удаление.
SweetAlert предоставляет гибкие возможности для стилизации и настройки внешнего вида окон. Параметры окна можно изменять, чтобы оно соответствовало дизайну приложения. Например, можно изменить цвет кнопок, стилизовать заголовки и тексты.
Swal.fire({
title: 'Удалить запись?',
text: 'Вы уверены, что хотите удалить этот элемент?',
icon: 'question',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Да, удалить',
cancelButtonText: 'Отмена'
});
В этом примере добавлена настройка цветов для кнопок. Кнопка подтверждения имеет синий цвет, а кнопка отмены — красный.
SweetAlert позволяет настроить задержку перед подтверждением
действия, что может быть полезно в случае, когда нужно, чтобы
пользователь смог отменить своё решение. Для этого можно использовать
параметр timer, который задаёт время в миллисекундах, после
которого окно автоматически закроется. Пример:
Swal.fire({
title: 'Вы уверены?',
text: 'Через 5 секунд окно будет закрыто.',
icon: 'info',
timer: 5000, // Окно закроется через 5 секунд
showCancelButton: true,
confirmButtonText: 'Да, подтверждаю',
cancelButtonText: 'Отмена'
}).then((result) => {
if (result.isConfirmed) {
console.log('Подтверждено');
} else {
console.log('Отменено');
}
});
Здесь окно закроется автоматически через 5 секунд, но если пользователь успеет нажать одну из кнопок до истечения времени, результат будет обработан.
SweetAlert предлагает простое и элегантное решение для создания окон подтверждения действий. С помощью нескольких настроек можно легко настроить поведение и внешний вид окна, делая взаимодействие пользователя с интерфейсом интуитивно понятным и красивым.