alert, prompt, confirm

Эта функция показывает сообщение и ждёт, пока пользователь нажмёт кнопку «ОК».

Например:

alert("Hello");

Это небольшое окно с сообщением называется модальным окном. Понятие модальное означает, что пользователь не может взаимодействовать с интерфейсом остальной части страницы, нажимать на другие кнопки и т.д. до тех пор, пока взаимодействует с окном. В данном случае – пока не будет нажата кнопка «OK».

Функция prompt принимает два аргумента:

result = prompt(title, [default]);

Этот код отобразит модальное окно с текстом, полем для ввода текста и кнопками OK/Отмена.

titleТекст для отображения в окне.defaultНеобязательный второй параметр, который устанавливает начальное значение в поле для текста в окне.Квадратные скобки в синтаксисе [...]

Квадратные скобки вокруг default в описанном выше синтаксисе означают, что параметр факультативный, необязательный.

Пользователь может напечатать что-либо в поле ввода и нажать OK. Введённый текст будет присвоен переменной result. Пользователь также может отменить ввод нажатием на кнопку «Отмена» или нажав на клавишу Esc. В этом случае значением result станет null.

Вызов prompt возвращает текст, указанный в поле для ввода, или null, если ввод отменён пользователем.

Например:

let age = prompt('Сколько тебе лет?', 100);

alert(`Тебе ${age} лет!`); // Тебе 100 лет!

Для IE: всегда устанавливайте значение по умолчанию

Второй параметр является необязательным, но если не указать его, то Internet Explorer вставит строку "undefined" в поле для ввода.

Запустите код в Internet Explorer и посмотрите на результат:

let test = prompt("Test");

Чтобы prompt хорошо выглядел в IE, рекомендуется всегда указывать второй параметр:

let test = prompt("Test", ''); // <-- для IE

Синтаксис:

result = confirm(question);

Функция confirm отображает модальное окно с текстом вопроса question и двумя кнопками: OK и Отмена.

Результат – true, если нажата кнопка OK. В других случаях – false.

Например:

let isBoss = confirm("Ты здесь главный?");

alert( isBoss ); // true, если нажата OK

Проблеми з confirm

Хотів перед запитом з confirm закрити popup-менюшку і виділити червоним рядок в таблиці, який мав видалятися. Але confirm спрацьювував, а менюшка не закривалася і рядок не виділявся. Хоча текстові мітки в config.log() між ціми командами виводилися коректно.

Я так і не зрозумів - в чому причина?..

Зробив задумане лише обгорнувши confirm у setTimeout(function() {}, 50);

tr_line.classList.add('table-danger');
console.log('роблю червоним рядок!');
console.log('намагаюсь закрити меню!');

setTimeout(function() {

    if (confirm(`Дійсно бажаєте видалити...?`))
    {
        console.log('confirmed');
        fetch("...")
    }
    else
    {
        console.log('canceled');
        tr_line.classList.remove('table-danger');
    }

}, 50);

Last updated