SweetAlert предоставляет удобные возможности для создания модальных окон с текстовыми полями, что позволяет пользователю вводить данные непосредственно в интерфейсе. Это расширяет функциональность стандартных всплывающих окон, делая их интерактивными и позволяя собирать информацию в процессе работы с приложением.
Чтобы добавить текстовое поле в модальное окно SweetAlert, достаточно
использовать свойство input при вызове функции
Swal.fire(). Данное свойство позволяет указать тип ввода,
например, текст, пароль или другие разновидности данных.
Swal.fire({
title: 'Введите ваше имя',
input: 'text',
inputLabel: 'Имя',
inputPlaceholder: 'Введите имя'
}).then((result) => {
if (result.isConfirmed) {
console.log('Введенное имя:', result.value);
}
});
В этом примере модальное окно отображает текстовое поле с подсказкой
для ввода имени. После того как пользователь подтвердит введенные
данные, они будут доступны в свойстве result.value.
В библиотеке SweetAlert доступны различные типы текстовых полей, что позволяет подстроить форму под разные нужды:
Swal.fire({
title: 'Введите свой email',
input: 'email',
inputLabel: 'Email',
inputPlaceholder: 'example@domain.com'
});
SweetAlert предоставляет ряд дополнительных опций, которые позволяют более гибко настраивать текстовые поля в модальных окнах:
Swal.fire({
title: 'Введите свой возраст',
input: 'text',
inputLabel: 'Возраст',
inputPlaceholder: 'Введите возраст',
inputValidator: (value) => {
if (!value || isNaN(value)) {
return 'Пожалуйста, введите корректный возраст';
}
}
});
Для ввода больших объемов текста, таких как комментарии или
сообщения, используется тип textarea. Этот тип позволяет
пользователю вводить многострочные данные, что удобно для случаев, когда
требуется предоставить более развернутую информацию.
Swal.fire({
title: 'Оставьте комментарий',
input: 'textarea',
inputLabel: 'Комментарий',
inputPlaceholder: 'Введите ваш комментарий...',
inputAttributes: {
'aria-label': 'Комментарий пользователя'
}
});
После того как пользователь заполнил текстовое поле и подтвердил
ввод, результат можно обработать в блоке .then(). Значение,
введенное в текстовое поле, будет доступно в объекте result
через свойство value.
Swal.fire({
title: 'Введите свой пароль',
input: 'password',
inputLabel: 'Пароль',
inputPlaceholder: 'Введите пароль'
}).then((result) => {
if (result.isConfirmed) {
console.log('Введенный пароль:', result.value);
}
});
Кроме того, можно использовать свойство inputValue для
установки начального значения в текстовое поле, что удобно в случае,
если нужно отобразить предварительно введенные данные.
Swal.fire({
title: 'Измените ваш email',
input: 'email',
inputValue: 'old.email@domain.com'
});
SweetAlert предоставляет несколько параметров для управления внешним видом текстового поля и его окружения:
Пример:
Swal.fire({
title: 'Введите ваш комментарий',
input: 'textarea',
inputLabel: 'Комментарий',
inputPlaceholder: 'Напишите что-нибудь...',
inputClass: 'custom-input-class',
customClass: {
title: 'custom-title-class',
input: 'custom-input-field'
}
});
Текстовые поля часто используются в таких ситуациях, как:
В каждой из этих ситуаций библиотека SweetAlert предоставляет удобный интерфейс для получения данных от пользователя в виде текстовых полей. Благодаря этому можно избежать необходимости в создании отдельных форм с большим количеством HTML-кода.
Swal.fire({
title: 'Измените ваш email',
input: 'email',
inputLabel: 'Новый email',
inputPlaceholder: 'Введите новый email'
}).then((result) => {
if (result.isConfirmed) {
updateUserEmail(result.value);
}
});
При использовании текстовых полей в SweetAlert стоит учитывать несколько важных моментов:
Использование текстовых полей в SweetAlert значительно улучшает взаимодействие с пользователем, делая интерфейс более интуитивно понятным и функциональным.