Можно прослушивать события на уровне документа:
const myMethod = event => {
if (event.target && event.target.id === 'swal-input1') {
// Поймали событие "input" для элемента #swal-input1
}
};
document.addEventListener('input', myMethod);
const { value: formValues } = await Swal.fire({/* . . . */});
document.removeEventListener('input', myMethod);
Кстати, если вы используете ReactJS, то можно использовать
sweetalert2-react-content. С ним у вас будет возможность в качестве HTML использовать компоненты ReactJS, в которых можно делать всё, что угодно, включая кастомные обработчики событий, привязанные к конкретным элементам. Можно делать примерно такую вещь:
import SwalRaw from "sweetalert2";
import withReactContent from 'sweetalert2-react-content';
const Swal = withReactContent(SwalRaw);
Swal.fire({
html: (
<div>
<input onInput={console.log} id="swal-input1" className="swal2-input">
<input id="swal-input2" className="swal2-input">
</div>
),
});
Swal вызывается как обычно, но можно дополнительно использовать компоненты ReactJS для таких options как:
title
,
html
,
confirmButtonText
,
denyButtonText
,
cancelButtonText
,
footer
и
closeButtonHtml
.