Модальное диалоговое окно с формой
Создайте функцию showPrompt(html, callback), которая выводит форму с сообщением (html), полем ввода и кнопками OK/ОТМЕНА.
- Пользователь должен ввести что-то в текстовое поле и нажать Enter или кнопку «OK», после чего должна вызываться функция
callback(value)со значением поля. - Если пользователь нажимает Esc или кнопку «ОТМЕНА», тогда вызывается
callback(null).
В обоих случаях нужно завершить процесс ввода и закрыть диалоговое окно с формой.
Требования:
- Форма должна быть в центре окна.
- Форма является модальным окном, это значит, что никакое взаимодействие с остальной частью страницы невозможно, пока пользователь не закроет его.
- При показе формы, фокус должен находиться сразу внутри
<input>. - Клавиши Tab/Shift+Tab должны переключать фокус между полями формы, не позволяя ему переходить к другим элементам страницы.
Пример использования:
showPrompt("Введите что-нибудь<br>...умное :)", function(value) {
alert(value);
});
Демо во фрейме:
P.S. HTML/CSS исходного кода к этой задаче содержит форму с фиксированным позиционированием, но вы должны сделать её модальной.
Модальное окно может быть реализовано с помощью полупрозрачного <div id="cover-div">, который полностью перекрывает всё окно:
#cover-div {
position: fixed;
top: 0;
left: 0;
z-index: 9000;
width: 100%;
height: 100%;
background-color: gray;
opacity: 0.3;
}
Так как он перекрывает вообще всё, все клики будут именно по этому <div>.
Также возможно предотвратить прокрутку страницы, установив body.style.overflowY='hidden'.
Форма должна быть не внутри <div>, а после него, чтобы она не унаследовала полупрозрачность (opacity).