Безмозглый confirm html. Описание методов alert, confirm и prompt в JavaScript
В JavaScript существует три базовых операции, которые позволяют получать данные от пользователя, для дальнейшей их обработки в скриптах. Это alert, prompt и confirm. Для чего они применяются, как их использовать и прочие нюансы и будут рассмотрены далее в этой статье.
alertПрименяется для вывода на экран браузера модального окна (это означает, что пользователь ничего не может нажать на странице, пока не закроет это окно. В рассматриваемом примере, до тех пор, пока не кликнет «ОК» в окне).
После вывода сообщения, содержащегося в alert, выполнение скрипта приостанавливается и возобновляется после закрытия модального окна.
В случае заполнения поля и нажатия ОК, в скрипт вернется информация, которую ввел пользователь.
Синтаксис данной команды несколько сложнее, чем предыдущей, поскольку позволяет задать текст обращения к пользователю и содежимое поля для ввода информации, которое будет выводиться по умолчанию: result = prompt(title, default ) ; , где
- title – сообщение, которое будет выведено пользователю в модальном окне. Аргумент обязательный для заполнения.
- default
– то, что выведется в поле для ввода текста по умолчанию. Также обязателен для заполнения, поскольку если его не задать, то это может привести к ошибкам в некоторых браузерах. Если же вы хотите оставить поле ввода информации пустым, то просто задайте prompt следующим образом:
var myTest = prompt("Любое инфо" , """);
Маленький пример использования prompt:
var year = prompt("В каком году вы закончили ВУЗ?" , 2008 ) ; alert("Вы выпускник " + year + " года!" ) ;
Обычно данная команда используется для сбора данных у пользователей, которые необходимы скрипту для продолжения дальнейшей работы.
confirmТакже представляет собой модальное окно. Как не сложно догадаться из названия используется обычно для согласования чего-либо с пользователем.
Для того и заточена – для взаимодействия предоставляет пользователю кнопки OK и CANCEL, которые возвращают скрипту булевы значения true и false соответственно.Оценок: 4 (средняя 4 из 5 )
Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров . Это моя первая публикация в рубрике . Хочу сказать, что мои скромный ресурс не претендовал, не претендует и не будет претендовать на всесторонность, а сам автор никогда не был и не будет web гуру. На страницах своего блога я совершаю попытку простым и понятным для людей языком рассказать об основах различных web технологий. И эта рубрика будет посвящена интерпретируемому языку программирования с объектно-ориентированными возможностями JavaScript .
Помимо выше сказанного, JavaScript является алгоритмическим языком (то есть, при помощи JavaScript мы как бы даем указание браузеру, как ему реагировать на определенные действия пользователя). В рубрики Заметки о HTML, а конкретно в статье, про , мы с вами уже поговорили, из каких трех базовых элементов состоят наши страницы: HTML, HEAD и BODY.
Но простые статичные 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, а вторым аргументом функции, это тоже допустимо.
Да, кода получается немного больше. Но зато красиво! А красота, как известно, требует жертв.
HTML, XHTML и CSS на 100% Квинт Игорь Метод confirm()Метод confirm()
Метод confirm() отображает окно подтверждения, которое сходно с окном предупреждения, генерируемым методом alert(), но содержит две кнопки: OK и Cancel. В листинге 11.3 демонстрируется создание окна подтверждения, но в этом сценарии не делается разницы между кнопками OK и Cancel. Нажатие любой из кнопок просто закроет окно (рис. 11.5).
Рис. 11.5. Работа с подтверждением
Листинг 11.3. Работа с подтверждением
Работа с подтверждением
confirm("Это мое подтверждение");
После прочтения данной главы вы научитесь использовать этот метод, чтобы сценарий по-разному реагировал на нажатие кнопок OK и Cancel.
Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей ВладимировичМетод Run Параметр intWindowStyle устанавливает вид окна для запускаемого приложения (табл. 1.13).Таблица 1.13. Типы окна (intWindowStyle) Параметр Константа Visual Basic Описание 0 vbHide Прячет текущее окно и активизирует другое окно (показывает его и передает ему фокус) 1 vbNormalFocus Активизирует и
Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон ХэлМетод Delete Если параметр force равен false или не указан, то с помощью метода Delete будет нельзя удалить каталог с атрибутом "только для чтения" (read-only). Установка для force значения true позволит сразу удалять такие каталоги.При использовании метода Delete неважно, является ли заданный
Из книги Программирование КПК и смартфонов на.NET Compact Framework автора Климов Александр П.Метод Move Обязательный параметр destination определяет каталог, в который будет производиться перемещение; групповые символы в имени каталога недопустимы. Замечание Вместо метода Move можно использовать метод MoveFolder объекта
Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли ДэвидМетод Copy Обязательный параметр destination определяет файл, в который будет производиться копирование; групповые символы в имени файла недопустимы.Параметр overwrite является логической переменной, определяющей, следует ли заменять уже существующий файл с именем destination (overwrite=true)
Из книги Описание языка PascalABC.NET автора Коллектив РуБоардМетод Delete Если параметр force равен false или не указан, то с помощью метода Delete будет нельзя удалить файл с атрибутом "только для чтения" (read-only). Установка для force значения true позволит сразу удалять такие файлы. Замечание Вместо метода Delete можно использовать метод DeleteFile
Из книги автора8.3.1. Метод inject Метод inject пришел в Ruby из языка Smalltalk (впервые он появился в версии Ruby 1.8). Его поведение интересно, хотя с первого раза понять его нелегко.Он отражает тот факт, что мы часто хотим обойти список и по ходу «аккумулировать» некоторый результат. Конечно, самый
Из книги автора8.3.3. Метод partition Как говорится, «в мире есть два сорта людей: те, что делят людей по сортам, и те, что не делят». Метод partition относится не к людям (хотя мы можем представить их в Ruby как объекты), но тоже делит набор на две части.Если при вызове partition задан блок, то он вычисляется
Из книги автора11.1.10. Метод initialize_copy При копировании объекта методом dup или clone конструктор не вызывается. Копируется вся информация о состоянии.Но что делать, если вам такое поведение не нужно? Рассмотрим пример:class Document attr_accessor:title, :text attr_reader:timestamp def initialize(title, text) @title, @text = title, text @timestamp =
Из книги автора11.1.11. Метод allocate Редко, но бывает, что нужно создать объект, не вызывая его конструктор (в обход метода initialize). Например, может статься, что состояние объекта полностью определяется методами доступа к нему; тогда не нужно вызывать метод new (который вызовет initialize), разве что вы
Из книги автора11.3.2. Метод const_get Метод const_get получает значение константы с заданным именем из модуля или класса, которому она принадлежит.str = "PI"Math.const_get(str) # Значение равно Math::PI.Это способ избежать обращения к методу eval, которое иногда считается неэлегантным. Такой подход дешевле с точки
Из книги автора11.3.5. Метод define_method Помимо ключевого слова def, единственный нормальный способ добавить метод в класс или объект - воспользоваться методом define_method, причем он позволяет сделать это во время выполнения.Конечно, в Ruby практически все происходит во время выполнения. Если
Из книги автора11.3.6. Метод const_missing Метод const_missing аналогичен методу method_missing. При попытке обратиться к неизвестной константе вызывается этот метод - если он, конечно, определен. В качестве параметра ему передается символ, ссылающийся на константу.Чтобы перехватывать обращения к
Из книги автораМетод Lockbits В.NET Compact Framework 2.0 появилась ограниченная поддержка метода LockBits, при помощи которого можно манипулировать массивом пикселов изображения. Перечисление ImageLockMode в данном методе позволяет использовать значения ReadWrite, ReadOnly и WriteOnly. А перечисление PixelFormat поддерживает
Из книги автора Из книги автораМетод Zip Описание методовМетоды приведены для последовательности sequence of T. function Zip(second: sequence of TSecond; resultSelector: (T,TSecond)->Res): sequence of Res; Объединяет две последовательности, используя указанную функцию, принимающую по одному элементу каждой последовательности и
Из книги автораМетод Contains Описание методовМетоды приведены для последовательности sequence of T. function Contains(value: T): boolean; Определяет, содержится ли указанный элемент в последовательности, используя компаратор проверки на равенство по умолчанию. function Contains(value: T; comparer: IEqualityComparer): boolean;
И снова я приветствую Вас в очередной теме посвященной языку JavaScript
, в которой мы разберем методы alert, prompt,
confrim
. Данные методы являются встроенными в язык Javascript
и помогают нам взаимодействовать с пользователем.
Alert
выводит на экран браузера окно с определенной информацией, которое приостанавливает скрипт до момента нажатия пользователем кнопки ОК.
Prompt
, как правило, выводит окно, в котором пользователю задают вопрос, на который он должен ответить в определенном текстовом поле, после чего нажать
клавишу ОК. Также пользователь может ничего не вводить, нажав клавишу отмена.
Confirm
также выводит окно, в котором пользователь уже не может вводить что-либо в текстовое поле, а может лишь нажать кнопку
ОК или отмена.
А теперь после небольшого вступления перейдем к рассмотрению всего вышесказанного на практике.
alert, prompt, confirm
alert("Привет, дорогой пользователь!"
);
var
nameUser
= prompt("Ваше имя?"
, "name"
);
var
userAnswer
= confirm("Вы действительно хотите покинуть сайт?"
);
В результате при обновлении страницы браузера у нас появится окно с приветствием пользователя. После нажатия кнопки ОК,
появится следующее окно, где будут спрашивать ваше имя. В данном методе есть два параметра, первый является обязательным и
отвечает за заголовок, который будет выводиться, в нашем случае это вопрос имени пользователя. И второй параметр отвечает за значение,
которое будет выводиться по умолчанию в текстовом поле. Если Вы введете ваше имя и нажмете кнопку ОК, то ваше имя поместиться в переменную
nameUser
. Если вы нажмете кнопку отмена, то в переменную будет записан null
.
И напоследок окно, которое спрашивает у пользователя, хочет он покинуть наш сайт или нет. В случае согласия в переменную будет помещено булево
значение true
, и при отказе false
соответственно. Вот и все, что следует знать о данных методах, до встречи в следующих уроках!