confirm()

Время чтения: меньше 5 мин

Кратко

Секция статьи "Кратко"

При помощи директивы confirm можно вывести на экран пользователя модальное окно с текстом и кнопками «Ок» и «Отмена».

🤖 Из-за того, что окно модальное — работа с интерфейсом браузера и страницами будет заблокирована. Это неудобно, плюс может восприниматься пользователем как попытка ограничивать его свободу. Модальное окно для пользователя — окно, которое блокирует работу пользователя с браузером до тех пор, пока пользователь это окно не закроет.

Пример

Секция статьи "Пример"
Открыть демо в новой вкладке

💡 Это крайне быстрый вариант кода, который взаимодействует с пользователем, но окно созданное таким образом не изменяется через CSS, а значит использовать его лучше только для прототипирования интерфейса. В финальном варианте веб-страницы использовать модальное окно нежелательно.

Как пишется

Секция статьи "Как пишется"

confirm() принимает один аргумент — это текст, который появится в модальном окне.

Результат работы confirm() можно записать в переменную:

        
          
          var answer1 = confirm("Подтвердите удаление")
          var answer1 = confirm("Подтвердите удаление")

        
        
          
        
      

Если не передать никакие аргументы, то пользователь увидит просто пустое окно с кнопками. Если появление окна следовало из какого-то действия, то пользователь может догадаться, что от него хотят. Но лучше, чтобы текст в модальном окне был написан — не надо бесить пользователей.

Как это понять

Секция статьи "Как это понять"

Аргумент confirm должен быть строкой. Если это не так — будет автоматическое приведение к строке. Такое поведение не доставляет проблем, пока аргумент является примитивом или встроенным типом, имеющим правила приведения к строке.

        
          
          // Текст: "Подтвердите переход на страницу"confirm("Подтвердите переход на страницу")// "[object Object]", совершенно не подсказывающий пользователю что делатьconfirm({ message: "please confirm" })
          // Текст: "Подтвердите переход на страницу"
confirm("Подтвердите переход на страницу")
// "[object Object]", совершенно не подсказывающий пользователю что делать
confirm({ message: "please confirm" })

        
        
          
        
      

💡 Результат confirm — булево значение: «true» если нажать «Окей» и false если нажать «Отмена».

        
          
          var result = confirm("Удалить элемент?")// нажимаем ОКif (result === true) {  alert("Элемент удален!")} else {  alert("Операция прервана")}// Результат: сообщение "Элемент удален"
          var result = confirm("Удалить элемент?")
// нажимаем ОК
if (result === true) {
  alert("Элемент удален!")
} else {
  alert("Операция прервана")
}

// Результат: сообщение "Элемент удален"

        
        
          
        
      

Так как confirm всегда выдаёт boolean значение, то проверки на true/false вполне достаточно для продолжения работы скрипта.

Открыть демо в новой вкладке

На практике

Секция статьи "На практике"