Неустрашимый confirm html. Методы alert, prompt, confirm в JavaScript

Давайте взглянем на два способа ввода. Возможно, ни один из них широко не используется, но они могут быть просто использованы для знакомства с основами.

Prompt. Запрос

Первый из них называется prompt . Он показывает всплывающее окно с текстом, который мы передаем первым параметром, и полем ввода, которое пользователь может заполнить. Когда пользователь нажмет OK , функция prompt() вернет введенное значение. Далее в этом примере мы используем метод document.write , чтобы заменить содержимое html-страницы нашим текстом.

examples/js/prompt.html

var name = prompt("Your name:", ""); document.write("Hello ", name); Try!

Текстовое поле будет предварительно заполнено значением второго параметра. Это может быть очень полезно, если бы мы хотели, чтобы пользователь отредактировал какое-нибудь значение. Можно заполнить поле старым значением.

examples/js/edit.html

var name = prompt("Please correct your e-mail address:", "[email protected]"); document.write("Your e-mail address is ", name); Try!

В другом случае, если пользователь нажмет cancel или клавишу ESC , функция prompt() вернет null .

Confirm. Подтверждение

Это всплывающее окно на самом деле не метод ввода. Оно позволяет разработчику задать вопрос и получить ответ - Да/Нет. Вызов функции confirm() приведет к появлению всплывающего окна с заданным текстом и двумя кнопками. Если пользователь нажмет OK , функция confirm() вернет true , если нажмет cancel или клавишу ESC , тогда функция вернет false .

Конечно, для понимания смысла, вы должны знать, что обозначают true и false , и что делает эта конструкция if - else . Если у вас уже есть какой-то опыт программирования, тогда, вероятно, вы уже поняли код, но даже если и нет, то сможете разобраться.

Этот код может быть описан следующим предложением:

Если "подтверждение" вернуло true, тогда напечатать "Hello World", иначе напечатать "OK, I won"t print it."

Или лучше вот так:

Если пользователь нажал "ОК", когда мы спросили "Shall I print Hello World?", тогда напечатать "Hello World", иначе напечатать "OK, I won"t print it."

examples/js/confirm.html

if (confirm("Shall I print Hello World?")) { document.write("Hello World"); } else { document.write("OK, I won"t print it."); }

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

HTML

Хотя основные усилия будут сконцентрированы на диалоге подтверждения, сначала скажем несколько слов о странице, которая будет использоваться для демонстрации. Те, кто жаждут увидеть код плагина, могут сразу прокрутить текст до раздела, посвященного jQuery.

index.php

Замена диалога подтверждения с использованием jQuery | Демонстрация для сайта сайт " target="_blank"> " alt="" width="250" /> Замена диалога подтверждения с использованием jQuery

В разделе заголовка нашей страницы включается шрифт Cuprum из Google Font , jquery_confirm.css , в котором заданы стили для диалога подтверждения, и styles.css , который содержит стили для демонстрационной страницы.

Внизу раздела тела страницы включается библиотека jQuery , jquery_confirm.js , который содержит основной код плагина, и script.js , который содержит код для обработчика события click , используемого на демонстрационной странице для запуска плагина.

Для использования диалога подтверждения на своем сайте надо скопировать папку jquery_confirm из архива с исходниками и включить jquery_confirm.css в раздел заголовка страницы, а jquery_confirm.js вставить перед закрытием тега body , также как и библиотеку jQuery.

Сам по себе диалог подтверждения является не более чем несколькими линиями кода HTML. Ниже приведен код, который генерирует плагин для вывода окна диалога.

Пример кода диалога

Заголовок окна

Описание процесса

Да Нет

Данный код добавляется к документу. Элемент confirmOverlay выводится над остальным содержанием страницы, предотвращая любые взаимодействия с ней пока открыт диалог подтверждения (модальное окно). Элементы h1 , p и confirmButtons заполняются в соответствии с аргументами, которые передаются плагину. Далее по тексту урока приводятся дополнительные разъяснения.


CSS

Стили для диалога подтверждения находятся в файле jquery_confirm.css . Таким образом, плагин будет легко подключить к существующему проекту, и он построен таким образом, чтобы исключить возможные пересечения со стилями ваших страниц.

jquery_confirm.css

#confirmOverlay{ width:100%; height:100%; position:fixed; top:0; left:0; background:url("ie.png"); background: -moz-linear-gradient(rgba(11,11,11,0.1), rgba(11,11,11,0.6)) repeat-x rgba(11,11,11,0.2); background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(11,11,11,0.1)), to(rgba(11,11,11,0.6))) repeat-x rgba(11,11,11,0.2); z-index:100000; } #confirmBox{ background:url("body_bg.jpg") repeat-x left bottom #e5e5e5; width:460px; position:fixed; left:50%; top:50%; margin:-130px 0 0 -230px; border: 1px solid rgba(33, 33, 33, 0.6); -moz-box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset; -webkit-box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset; box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset; } #confirmBox h1, #confirmBox p{ font:26px/1 "Cuprum","Lucida Sans Unicode", "Lucida Grande", sans-serif; background:url("header_bg.jpg") repeat-x left bottom #f5f5f5; padding: 18px 25px; text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.6); color:#666; } #confirmBox h1{ letter-spacing:0.3px; color:#888; } #confirmBox p{ background:none; font-size:16px; line-height:1.4; padding-top: 35px; } #confirmButtons{ padding:15px 0 25px; text-align:center; } #confirmBox .button{ display:inline-block; background:url("buttons.png") no-repeat; color:white; position:relative; height: 33px; font:17px/33px "Cuprum","Lucida Sans Unicode", "Lucida Grande", sans-serif; margin-right: 15px; padding: 0 35px 0 40px; text-decoration:none; border:none; } #confirmBox .button:last-child{ margin-right:0;} #confirmBox .button span{ position:absolute; top:0; right:-5px; background:url("buttons.png") no-repeat; width:5px; height:33px } #confirmBox .blue{ background-position:left top;text-shadow:1px 1px 0 #5889a2;} #confirmBox .blue span{ background-position:-195px 0;} #confirmBox .blue:hover{ background-position:left bottom;} #confirmBox .blue:hover span{ background-position:-195px bottom;} #confirmBox .gray{ background-position:-200px top;text-shadow:1px 1px 0 #707070;} #confirmBox .gray span{ background-position:-395px 0;} #confirmBox .gray:hover{ background-position:-200px bottom;} #confirmBox .gray:hover span{ background-position:-395px bottom;}

Используется несколько правил CSS3. В определении #confirmOverlay мы задаем градиенты CSS3 (они будут доступны только в браузерах Firefox, Safari и Chrome).

В #confirmBox , который располагается в центре экрана, добавлены внутренние тени, которые эффектно выглядят (наподобие внутреннего свечения в Фотошоп). Также используется шрифт Cuprum , который входит в Google Font.

Для кнопок используются спрайты CSS. Доступны два варианта дизайна - серый и голубой. Вы можете также добавить свой собственный стиль для кнопок.

jQuery

Прежде чем рассматривать код плагина взглянем на то, как его использовать. В файле scripts.js происходит вызов плагина.

script.js

$(document).ready(function(){ $(".item .delete").click(function(){ var elem = $(this).closest(".item"); $.confirm({ "title" : "Подтверждение удаления", "message" : "Вы решили удалить пункт.
После удаления его нельзя будет восстановить! Продолжаем?", "buttons" : { "Да" : { "class" : "blue", "action": function(){ elem.slideUp(); } }, "Нет" : { "class" : "gray", "action": function(){} // В данном случае ничего не делаем. Данную опцию можно просто опустить. } } }); }); });

Когда на элементе div .delete нажимают кнопку мыши, скрипт выполняет функцию $.confirm , определенную плагином. Она передает плагину заголовок диалога, описание и объект с кнопками. Каждая кнопка получает имя класса CSS и свойство action . Данное свойство устанавливает функцию, которая выполняется при нажатии кнопки.

Теперь можно перейти к самой интересной части нашего урока. В файле jquery_confirm.js содержится код плагина альтернативы стандартному диалогу подтверждения.

jquery_confirm.js

(function($){ $.confirm = function(params){ if($("#confirmOverlay").length){ // Диалог подтверждения уже выведен на странице: return false; } var buttonHTML = ""; $.each(params.buttons,function(name,obj){ // Генерируем разметку кнопок: buttonHTML += ""+name+""; if(!obj.action){ obj.action = function(){}; } }); var markup = [ "", "", "",params.title,"", "

",params.message,"

", "", buttonHTML, "" ].join(""); $(markup).hide().appendTo("body").fadeIn(); var buttons = $("#confirmBox .button"), i = 0; $.each(params.buttons,function(name,obj){ buttons.eq(i++).click(function(){ // Когда на кнопку нажимают, вызываем функцию действия // и закрываем диалог подтверждения. obj.action(); $.confirm.hide(); return false; }); }); } $.confirm.hide = function(){ $("#confirmOverlay").fadeOut(function(){ $(this).remove(); }); } })(jQuery);

Наш плагин определяет метод $.confirm() . Метод читает передаваемые аргументы, конструирует разметку и добавляет ее на страницу. Так как div #confirmOverlay имеет фиксированное позиционирование, то он располагается по центру экрана и остается в своем положении, даже если пользователь прокрутит страницу.

После добавления разметки скрипт устанавливает обработчики событий, которые выполняют соответствующие действия для кнопок диалога.

Готово!

Заключение

Вы можете изменить стиль диалога, модифицируя файл jquery_confirm.css . Так как атрибут сообщения диалога принимает HTML текст, то вы можете добавлять в них изображения и иконки для вывода в диалоговом окне.

Также можно использовать плагин для вывода предупреждений - нужно только передать только одну кнопку без атрибута действия.

Я рассказал про «шаблонные» модальные окна. Т.е. такие, для которых создаются отдельные файлы-шаблоны. И сложность и навороченность этих окон может быть безграничной.

Но нередко для общения с пользователем нужны совсем простые диалоговые окна – просто вывести какое-то сообщение с единственной кнопкой «Ок», которое он не сможет не заметить, или запросить у него подтверждение какого-либо действия.

Часто на сайтах для таких целей используют Системные функции
Есть в движке несколько групп так называемых «системных» функций. Файлы, содержащие эти функции, загружаются в самом начале работы движка, еще до загрузки файлов конфигурации, и сами функции не привязаны к какому-либо модулю и могут использоваться в любом месте, в любом компоненте – в модулях, экшенах, мапперах и пр." class="term">системные функции alert() , confirm() и prompt() . Примерно вот так:
Удалить все!
Это работает в любом браузере, но окна, которые выводятся такими функциями, выглядят некрасиво, примитивно и ломают всю красоту, которую мы наводим на своем сайте.

Чтоб решить эту проблему в движке сейчас можно (я бы сказал – нужно) использовать аналоги:

ls.modal.alert(options) - вывод информационного окна с одной кнопкой «Ок»
ls.modal.confirm(options) - вывод окна с кнопками «Отмена» и «Подтвердить»
ls.modal.prompt(options) - окно с полем ввода

Во всех функциях параметр options может быть либо строкой, либо объектом. Например:
ls.modal.alert(‘Hello, world!’);
Этот код выведен модальное окно с текстом «Hello, world!» и кнопкой «Ok» . И самое главное – это окно будет оформлено точно так же, как все другие модальные окна вашего сайта.

Мы можем также повесть обработчик на нажатие кнопки:
ls.modal.alert({title: "I say", text: "Hello, world!", onConfirm: function(){ // юзер кликнул по кнопке Ok }}); Здесь добавляется заголовок окна "I say" и по нажатию кнопки будет выполнена функция, которая передана в параметре onConfirm .

Но это еще не все! Мы можем в теле окна вывести любой HTML-код:
var htmlCode = " Вот ваш новый аватар"; ls.modal.alert({title: "Аватар", html: htmlCode}); И получим примерно такое вот окошко:

Обратите внимание, что для отображения HTML-кода используется параметр html , а не text (если передать оба параметра, то будет использован text , а html будет проигнорирован).

Аналогично используются функции ls.modal.confirm() и ls.modal.prompt() . Но в этих функциях возможны дополнительные параметры. Например в параметрах функции ls.modal.confirm() мы можем передать, не один, а два обработчика - по обработчику на каждую кнопку:
ls.modal.confirm({title: "Удаление", text: "Удалить все подряд?", onConfirm: function(){ // юзер кликнул по кнопке «Подтвердить» }, onCancel: function(){ // юзер кликнул по кнопке «Отмена» } }); Функция ls.modal.prompt() используется, чтобы запросить у пользователя какое-нибудь значение. И мы можем задать это значение по умолчанию:
ls.modal. prompt ({title: "Ввод числа", text: "Введите сюда число", value: 123 onConfirm: function(value){ // Введенное значение в переменной
Общая схема имени переменной выглядит следующим образом: префикс+ДополнительныйПрефикс+ИмяПеременной+Суффикс. Имена переменных содержат латинские буквы верхнего и нижнего регистров и начинаются с префикса, записаного в нижнем регистре, обозначающего тип данных значения этой переменной. Перечень префиксов, рекомендованых к использованию указан ниже. Дополнительный префикс конкретизирует значение переменной и выбирается из перечня указанных ниже рекоммендуемых дополнительных префиксов. Имя переменной состоит из одного или нескольких слов, описывающих смысловое значение этой переменной, и записывается горбатым регистром. Так как префиксы описывают тип значения переменной, ее имя описывает экземпляр данного типа в единственном числе. Суффикс дополняет имя переменной и конкретизирует ее смысловое значение. Перечень суффиксов, рекоммендованых к использованию указан ниже. Цифры в имени допускаются, но не рекомендуются. Знак нижнего подчеркивания в имени не используется.

Префиксы
Рекомендован к использованию следующий перечень префиксов:
- a (array) - массив значение;
- b (bool) - логическое значение;
- e (entity) - объект типа Entity и наследуемые от него;
- i (integer) - целочисленное значение;
- f (float) - значение вещественного типа;
- m (mapper) - объект типа Mapper и наследуемые от него;
- n (number) - значение неопределеного цифрового типа, которое может принимать как целое, так и
вещественное значение. Требует проверки на значение типа при использовании.

- o (object) - объект, типа отличного от Mapper и Entity;
- s (string) - строковое значение;
- x (miXed) - объект смешанного типа. Требует проверки на значение типа при использовании.

Рекомендован к использованию следующий перечень дополнительных префиксов:
- Min (minimum) - минимальное значение;
- Max (maximum) - максимальное значение;
- Current - текущее значение.

Суффиксы
В отличие от Дополнительных префиксов суффиксы конкретизируют семантическое значение имени переменной, а не ее
значение. Рекомендован к использованию следующий перечень суффиксов:
- First - первое значение из доступного списка;
- Last - последнее значение из доступного списка;
- Limit - предельное значение из доступного списка;
- Tmp - временное значение;
- New - новое (устанавливаемое) значение;
- Old - старое (затираемое) значение;

Исключения
Существуют имена переменных, предназначенных для специального использования - исключения из указанных
рекоммендаций:
- i, j - итераторы для небольших циклов (цикл считается небольшим, если помещается полностью на
один экран и позволяет увидеть сразу все вхождения итераторов);
- k, v - переменные цикла foreach ($aData as $k => $v);
- key, value - переменные цикла foreach ($aData as $key => $value);
- s - cериализованное представление данных;
- data - переменная с данными в сеттере сущности, а также данные возвращаемые из методов маппера;
- sql - в мапперах переменная, содержащая текст запроса – префикс «s» не используется." class="term">переменной «value» } }); Здесь в обработчик передается введенное пользователем значение и мы можем использовать его для того, чтоб определиться, что ж с ним дальше делать.

В заключении этой части хочу обратит внимание на одну особенность, о которой не надо забывать: есть важное отличие в поведении системных функций alert() , confirm() и prompt() и их аналогах, о которых идет речь - ls.modal.alert(options) , ls.modal.confirm(options) и ls.modal.prompt(options) . А именно - Системные функции
Есть в движке несколько групп так называемых «системных» функций. Файлы, содержащие эти функции, загружаются в самом начале работы движка, еще до загрузки файлов конфигурации, и сами функции не привязаны к какому-либо модулю и могут использоваться в любом месте, в любом компоненте – в модулях, экшенах, мапперах и пр." class="term">системные функции останавливают выполнение кода javascript и ждут реакции пользователя. И только после того, как пользователь среагировал, выполнение кода продолжается. Когда же вы используете описанные здесь функции, то сначала выполняется полностью весь код, где идет сам вызов, и только потом выводится диалоговое окно.

Поэтому если взять код, приведенной в начале статьи и просто заменить вызов confirm() на ls.modal.confirm() и код придется переписать примерно так:
Удалить все! $(function(){ $("js-delete-all").click(ls.modal.confirm("Вы уверены?", function(){ location.href="site.com/delete/all/"; });); }); Обратите внимание - функция обработчик передается не в параметре onConfirm, а вторым аргументом функции, это тоже допустимо.

Да, кода получается немного больше. Но зато красиво! А красота, как известно, требует жертв.

Продолжая нашу серию обучающих статей по наведению красоты и управлению стандартными настройками браузеров, сегодня мы предлагаем вам разработать кросс-браузерное диалоговое окно подтверждения с помощью простого в использовании плагина jQuery. Вы можете выбрать текст, кнопки, а также действия, которые будут выполнены после клика.

HTML-код

Хотя изначально мы должны сосредоточиться на окне подтверждения, для начала давайте мы расскажем вам немного о странице, которую мы будем использовать. Если вам хочется увидеть исходный код плагина, вы можете пропустить этот этап и пролистнуть страницу до части статьи, в которой рассказывается о jQuery.

Index.php


A jQuery Confirm Dialog Replacement with CSS3 | Tutorialzine Demo

В верхнем отделе документа мы включили шрифт Cuprum из , jQuery.confirm.css (каскадные таблицы стилей для диалогового окна), а также styles.css – каскадные таблицы стилей нашей страницы.

В самом низу тела документа мы включили библиотеку jQuery, jquery.confirm.js (основной файл плагина), а также script.js, который отслеживает событие клика по кнопке и запускает плагин. В заключающем этапе нашей сегодняшней обучающей статьи мы расскажем вам об этих двух файлах.

Для того чтобы включить окно подтверждения в свой веб-сайт, вам надо будет скопировать папку jquery.confirm из скачанного архива, и включить jquery.confirm.css в головную часть кода, а также файл jquery.confirm.js перед тэгом, завершающим тело документа + библиотеку jQuery.

Само по себе диалоговое окно представляет ничто иное, как пару строк кода HTML. Ниже вы можете видеть код, вставленный плагином для отображения диалогового окна.

Пример кода диалогового окна

Код добавлен в тело документа. confirmOverlay отображен поверх остальной страницы, что предотвращает любое взаимодействие с элементами страницы, если диалоговое окно отображено. h1, p и div confirmButtons расставлены в соответствии структуры, внесённое в настройки плагина. Далее в статье вы ещё подробнее ознакомитесь с этим.

CSS-код

Оформление диалогового окна содержится в файле jquery.confirm.css. Это значительно упрощает процесс интеграции в уже готовый проект, и стилизация выполнена таким образом, что вы можете быть уверены, что стили не смешаются с теми, которые уже имеются на странице.

jquery.confirm.css

#confirmOverlay{
width:100%;
height:100%;
position:fixed;
top:0;
left:0;
background:url("ie.png");
background: -moz-linear-gradient(rgba(11,11,11,0.1), rgba(11,11,11,0.6)) repeat-x rgba(11,11,11,0.2);
background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(11,11,11,0.1)), to(rgba(11,11,11,0.6))) repeat-x rgba(11,11,11,0.2);
z-index:100000;
}

#confirmBox{
background:url("body_bg.jpg") repeat-x left bottom #e5e5e5;
width:460px;
position:fixed;
left:50%;
top:50%;
margin:-130px 0 0 -230px;
border: 1px solid rgba(33, 33, 33, 0.6);

Moz-box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset;
-webkit-box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset;
box-shadow: 0 0 2px rgba(255, 255, 255, 0.6) inset;
}

#confirmBox h1,
#confirmBox p{
font:26px/1 "Cuprum","Lucida Sans Unicode", "Lucida Grande", sans-serif;
background:url("header_bg.jpg") repeat-x left bottom #f5f5f5;
padding: 18px 25px;
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.6);
color:#666;
}

#confirmBox h1{
letter-spacing:0.3px;
color:#888;
}

#confirmBox p{
background:none;
font-size:16px;
line-height:1.4;
padding-top: 35px;
}

#confirmButtons{
padding:15px 0 25px;
text-align:center;
}

#confirmBox .button{
display:inline-block;
color:white;
position:relative;
height: 33px;

Font:17px/33px "Cuprum","Lucida Sans Unicode", "Lucida Grande", sans-serif;

Margin-right: 15px;
padding: 0 35px 0 40px;
text-decoration:none;
border:none;
}

#confirmBox .button:last-child{ margin-right:0;}

#confirmBox .button span{
position:absolute;
top:0;
right:-5px;
background:url("buttons.png") no-repeat;
width:5px;
height:33px
}

#confirmBox .blue{ background-position:left top;text-shadow:1px 1px 0 #5889a2;}
#confirmBox .blue span{ background-position:-195px 0;}
#confirmBox .blue:hover{ background-position:left bottom;}
#confirmBox .blue:hover span{ background-position:-195px bottom;}

#confirmBox .gray{ background-position:-200px top;text-shadow:1px 1px 0 #707070;}
#confirmBox .gray span{ background-position:-395px 0;}
#confirmBox .gray:hover{ background-position:-200px bottom;}
#confirmBox .gray:hover span{ background-position:-395px bottom;}

Здесь используются преимущества нового CSS3. В определении #confirmOverlay мы используем градации CSS3 (которые работают только Firefox, Safari и Chrome) с предусмотренным откатом в виде прозрачного PNG.

Далее, в расположенном по центру дисплея #confirmBox, мы добавили внутреннюю тень блока (нечто похожее на внутреннее свечение в Photoshop). Мы также использовали шрифт Cuprum, который был добавлен из каталога шрифтов от Google.

Наряду с тенями текста, вы можете увидеть стилизацию кнопок. Они реализованы при помощи скользящих дверок. На данный момент доступно два типа дизайна – синий и серый. Вы можете добавить новый цвет кнопки посредством добавления новых объявлений в код.

jQuery

Перед тем, как мы перейдём к исходному коду плагина, давайте сначала посмотрим немного дальше. В script.js вы можете увидеть, как запускается плагин.

Script.js

$(document).ready(function(){

$(".item .delete").click(function(){

Var elem = $(this).closest(".item");

$.confirm({
"title" : "Delete Confirmation",
"message" : "You are about to delete this item.
It cannot be restored at a later time! Continue?",
"buttons" : {
"Yes" : {
"class" : "blue",
"action": function(){
elem.slideUp();
}
},
"No" : {
"class" : "gray",
"action": function(){} // Nothing to do in this case. You can as well omit the action property.
}
}
});

Когда в нашем примере нажимается div .deleted, скрипт выполняет определённую плагином функцию $.confirm. Далее приводится заголовок диалогового окна, описание, а также объект с кнопками. Каждая кнопка имеет имя класса CSS, а также параметр действия. Действие представляет собой функцию, которая запускается при нажатии кнопки.

Теперь давайте перейдём к интересной части. В jquery.confirm.js вы можете увидеть исходный код нашего диалогового окна.

Jquery.confirm.js

$.confirm = function(params){

If($("#confirmOverlay").length){
// A confirm is already shown on the page:
return false;
}

Var buttonHTML = "";

// Generating the markup for the buttons:

If(!obj.action){
obj.action = function(){};
}
});

Var markup = [
"

",params.title,"",
"

",params.message,"

",
"

",
buttonHTML,
"

"
].join("");

$(markup).hide().appendTo("body").fadeIn();

Var buttons = $("#confirmBox .button"),
i = 0;

$.each(params.buttons,function(name,obj){
buttons.eq(i++).click(function(){

// Calling the action attribute when a
// click occurs, and hiding the confirm.

Obj.action();
$.confirm.hide();
return false;
});
});
}

$.confirm.hide = function(){
$("#confirmOverlay").fadeOut(function(){
$(this).remove();
});
}

Наш плагин определяет метод $.confirm(). Данный метод обрабатывает данные, которые вы внесли, конструирует разметку, а затем добавляет всё это на страницу. Так как div #confirmOverlay имеет фиксированную позицию посредством CSS-объявления, мы оставим процесс центрирования браузеру, а затем перемещать его при прокрутке страницы пользователем.

После добавления разметки, скрипт раздаёт рычаги событий для событий при нажатии на кнопки, выполняя действие соответствующее нажатой кнопке.

На этом наше диалоговое окно завешено!

Подытожим

Вы можете отредактировать внешний вид диалогового окна посредством файла jquery.confirm.css. Так как атрибут сообщения в диалоговом окне использует HTML-код, вы можете добавлять туда изображения или иконки.

Вы даже можете использовать плагин для реализации окон сообщений об ошибках – вам просто нужно будет внести туда одну кнопку без установленного атрибута действия.

Внимание! У вас нет прав для просмотра скрытого текста.

На этом уроке мы познакомимся с методами объекта window: alert() , prompt() и confirm() .

Метод alert()

Метод alert() предназначен для вывода на экран пользователя предупреждающего диалогового окна с указанным сообщением и кнопкой "ОК". Оно может использоваться для того чтобы донести до пользователя важную информацию.

window.alert(Параметр_1);

Метод alert() имеет один обязательный параметр - это текст сообщения, которое отображается в диалоговом окне. Данный метод в результате своего выполнения ни чего не возвращает.

Например, выведем для посетителя сайта при нажатии на ссылку предупреждающее диалоговое окно: Перейти на сайт

Метод confirm() Метод confirm() объекта window предназначен для вывода на экран пользователя диалогового окна с указанным сообщением и кнопками "ОК" и "Отмена". Окно с подтверждением можно использовать, чтобы запросить у пользователя разрешение на выполнение того или иного действия.

var resultConfirm = confirm(Параметр_1);

Данный метод имеет один параметр - это текст сообщения, которое будет выведено в диалоговое окно.

Метод confirm() в качестве результата (resultConfirm) своего выполнения возвращает одно из двух значений:

  • true , если пользователь нажал "ОК";
  • false , если пользователь нажал "Отмена" или закрыл его.

Например, выведем в элемент р с id="resultConfirm" результат нажатия пользователем на кнопку "ОК" в диалоговом окне:

var resultActionUser = confirm("Пользователь, пожалуйста нажми на кнопку ОК."); if (resultActionUser) { document.getElementById("resultConfirm").innerHTML = "Пользователь, спасибо что Вы нажали на кнопку ОК"; } else { document.getElementById("resultConfirm").innerHTML = "Пользователь, мы разочаровались в Вашем ответе"; }

Метод prompt()

Метод prompt() предназначен для вывода на экран пользователя диалогового окна с сообщением, текстовым полем для ввода данных и кнопками "ОК" и "Отмена". Оно предназначено для того, чтобы запросить данные у пользователя.

var resultPrompt = prompt(Параметр_1, Параметр_2);

Данный метод имеет два параметра:

  • сообщение, которое будет выведено в диалоговом окне. Данный параметр является обязательным и содержит сообщение, в котором "говорится", какие данные должен ввести пользователь в текстовое поле;
  • второй параметр является необязательным и может использоваться для указания начального значения, которое будет выведено в поле ввода диалогового окна при открытии.

В зависимости от действий пользователя метод prompt() может возвращать следующие данные:

  • текстовое значение - если в поле ввода содержатся данные и пользователь нажал "ОК";
  • пустая строка - если в поле ввода не содержатся данные и пользователь нажал "ОК";
  • null - если пользователь нажал "Отмена" или закрыл это окно, при этом не важно какие данные были введены в текстовое поле.

Примечание: диалоговое окно, которое появляется в результате выполнения одного из методов alert() , confirm() или prompt() является модальным, т.е. оно блокирует доступ пользователя к родительскому приложению (браузеру) до тех пор, пока пользователь не закроет это диалоговое окно.

Например, запросим у пользователя имя и выведем в зависимости от результата текст в элемент c id="nameUser" :

var nameUser = prompt ("Введите своё имя?"); if (nameUser) { document.getElementById("nameUser").innerHTML = nameUser +", добро пожаловать на сайт!"; } else { document.getElementById("nameUser").innerHTML = "Гость, добро пожаловать на сайт!"; }

Например, попросим пользователя угадать число 8:

function guessNumber() { var findNumber = prompt ("Угадай число от 1 до 10?"); switch (findNumber) { case "6": alert("Уже теплее!"); break; case "7": alert("Горячо!"); break; case "8": alert("Ты угадал! Это число 8."); break; case "9": alert("Уже теплее!"); break; default: alert("Холодно!"); break; } } ... Угадай число