Javascript.RU

prompt

Синтаксис

result = prompt(text[, value])

Аргументы

text
Текст сообщения
value
Строка, введенная в текстовое поле по умолчанию. Необязательный параметр.

Описание, примеры

Выводит сообщение в окне с текстовым полем и двумя кнопками: "ОК" и "ОТМЕНА".

Возвращает введенное значение или null, если посетитель нажал на кнопку "ОТМЕНА".

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

var years=prompt('Сколько вам лет?',100)
alert('Вам '+years+' лет!')


Автор: Гость (не зарегистрирован), дата: 28 августа, 2009 - 09:47
#permalink

а как можно задать координаты окна prompt? В Firefox оно в центре окна,а в IE - в левом верхнем углу. Нельзя его оттуда перетащить?


Автор: ГостьНейм (не зарегистрирован), дата: 19 августа, 2013 - 13:53
#permalink

нет


Автор: Вит (не зарегистрирован), дата: 2 ноября, 2009 - 00:39
#permalink

Спасибо огромное;)
нужна была обработка веденного ключа на
правильное, неправильное значения и на отмену ввода
до этого момента не знал как разделить последние два события..


Автор: VaSSo (не зарегистрирован), дата: 29 января, 2010 - 22:21
#permalink

Я на одном сайте видел похожее окно с 2-мя полями
как это сделать неизвестно? @=


Автор: Romych, дата: 20 февраля, 2010 - 17:26
#permalink

объясните пожалуйста, как исправить размер модального окна в IE ?
с методом prompt
вот это окно в Опере

и оно же в IE


Автор: ivsid50@yandex.ru (не зарегистрирован), дата: 7 декабря, 2012 - 09:01
#permalink

Уважаемый товарищ, у меня тот же вопрос. Если Вы уже знаете ответ, то прошу сообщить и мне. Спасибо.


Автор: maxmaster, дата: 2 января, 2013 - 16:42
#permalink

Размеры и положение модальных окон регулируются браузерами самостоятельно. На них никак нельзя повлиять. Поэтому там, где требуется красивая форма ввода, не используют prompt, а получают значение из красиво нарисованной на HTML формы


Автор: Данил Агеев (daxiz555) (не зарегистрирован), дата: 7 июня, 2010 - 16:54
#permalink

В том примере не доработка.
Скрипт расщитан на вывод alert(ом) данные введенные тогда...
но если пользователь оставит поле пустым он выведет "Вам null лет", нужно исправить:

var years=prompt('Сколько вам лет?','100');
if (years == '') {var years = '0';alert('Вам '+years+' лет!');}
else {alert('Вам '+years+' лет!');}

/// ... ///


Автор: SWS (не зарегистрирован), дата: 3 августа, 2010 - 11:08
#permalink

тогда уж либо

var years=prompt('Сколько вам лет?','100');
if (years == '') {var years = '0';}
alert('Вам '+years+' лет!');

либо

var years=prompt('Сколько вам лет?','100');
if (years == '') {alert('Вы не указали свой возраст!');}
else {alert('Вам '+years+' лет!');}

Автор: Loydi (не зарегистрирован), дата: 23 августа, 2010 - 23:18
#permalink


var years=prompt('Сколько вам лет?','100');
if (years == '') {var years = '0';}
alert('Вам '+years+' лет!');

Лучше:

var years=prompt('Сколько вам лет?','100');
years = years == '' ? 0 : years;
alert('Вам '+years+' лет!');

А вобще null и пустая строка - разные вещи, а значит здесь как проверку нужно использовать:

years = years == null ? 0 : years;

А вообще, лучше всунуть в цикл и проверить что вводится именно число:

do {
  var years=prompt('Сколько вам лет?','100');
  years = parseInt(years, 10); // округляем => если не число, то NaN
} while (isNaN(years));
alert('Вам '+years+' лет!');


Ну и идеальный вариант - объёдинить проверку на null и на NaN

Автор: Loydi (не зарегистрирован), дата: 23 августа, 2010 - 23:55
#permalink

years = parseInt(years, 10); // округляем => если не число, то NaN
упс, глюкануло: parseInt - выделение числ. части, конечно.


Автор: Гость (не зарегистрирован), дата: 6 июля, 2011 - 20:48
#permalink

Как избавиться от самопроизвольного повторного выскакивания промптовского окна после получения результата?


Автор: Гость (не зарегистрирован), дата: 26 января, 2012 - 08:55
#permalink

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

var imya = prompt ("Напишите свое имя здесь:"," ");
var gody = prompt ("Напишите, сколько вам лет здесь:"," ");
var nastroenie = prompt ("Напишите, какое у вас настроение здесь:"," ");
document.write("Здравствуй, " + imya + "! Тебе");
document.write(" " + gody + " лет(год),");
document.write(" и у тебя " + nastroenie + " настроение!");
document.write(" Всё верно, не так-ли?!");

Автор: Micha (не зарегистрирован), дата: 24 сентября, 2013 - 00:10
#permalink

Параметр value использовать все же рекомендуется, т.к. в ИЕ по умолчанию в поле написано undefinded, но мы ведь этого не хотим, верно?
поэтому так корректнее:
promt("Введите что нибудь","")


Автор: Гость (не зарегистрирован), дата: 17 октября, 2013 - 07:49
#permalink

Собрал в работающий пример всё прозвучавшее в комментариях, добавил замену запятой на точку, проверку на допустимость значения и выбор "год-года-лет":

<script>
document.writeln( '<H1>Ваш возраст (полных лет)</H1>' )
var years=0;
while ( years != null ) {
 years=prompt('Сколько Вам лет?','')
 if (years!=null) { // пользователь нажал ОК (Enter), а не Отмена (Esc)
  document.write( years + ' - ' );
  years = years.replace(/,/g, ".") // если дробную часть числа укажут на русский манер, через запятую
  // years = years == '' ? 0 : ( !isNaN(years) ? Math.abs(years) : -1 ) // введена пустая строка или нечисловое значение
     years = years == '' ? 0 : Math.abs(years) // введена пустая строка или отрицательное значение
  if (isNaN(years)) {
   document.writeln( ' = ошибка: укажите возраст числом = ' + '<br>' );
  }
  else if (years>122) { 
   document.writeln( 'Столько не живут! Максимум - француженка Жанна-Луиза Кальман прожила 122 года' + '<br>' ) // см. wiki Долгожитель 
  } else {
   years = parseInt( years )
   document.writeln( 'Вам ' + years + (years%10==1&&years!=11?' год.':( (years%10>1&&years%10<5)&&(years<11||years>14) ?' года.':' лет.')) + '<br>' )
  }
 }
}
</script>

Автор: Гость (не зарегистрирован), дата: 17 октября, 2013 - 07:57
#permalink
// тут ещё нужно условие на 111..114 лет :-D
   document.writeln( 'Вам ' + years + (years%10==1&&years!=11&&years!=111?' год.':( (years%10>1&&years%10<5)&&(years<11||years>14&&years<111||years>114) ?' года.':' лет.')) + '<br>' )

Автор: Гость (не зарегистрирован), дата: 27 мая, 2014 - 11:27
#permalink

Вот вы реально идиоты ))
Отлично позамарачивались! ))


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2014 - 23:18
#permalink

Возможно ли и каким обазом ,задав значение переменной можно задать ею значение атрибута тега?

x1=prompt("...");
y1=prompt("...");

(например тега
P.S. сея прога не работает, как ее можно исправить?


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2014 - 23:21
#permalink

Возможно ли и каким обазом ,задав значение переменной можно задать ею значение атрибута тега?
<Скрипт>
x1=prompt("...");
y1=prompt("...");

<
(например тега
P.S. сея прога не работает, как ее можно исправить?


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2014 - 23:23
#permalink

Извеняюсь за спам, пишу снова!
Возможно ли и каким обазом ,задав значение переменной можно задать ею значение атрибута тега?
<Скрипт>
x1=prompt("...");
y1=prompt("...");
.
<Имг срк="1.jpg" style="position:absolute;left:x1;top:y1.
P.S. сея прога не работает, как ее можно исправить?


Автор: Гость (не зарегистрирован), дата: 5 января, 2015 - 05:06
#permalink

А как сделать так,чтобы если ответ в промпте не целевой,опять отрывался начальный промпт,после второго сообщения.?


Автор: Гость (не зарегистрирован), дата: 20 февраля, 2016 - 13:19
#permalink

do-while


Автор: OMD (не зарегистрирован), дата: 29 января, 2015 - 12:51
#permalink
var years=prompt('Сколько вам лет?', '100'); // return string | null
if (years === '' || years  === null) {
    alert('Вы не указали свой возраст!');
}
else {
    alert('Вам '+years+' лет!');
}

Автор: Георгий Тамразян (не зарегистрирован), дата: 20 февраля, 2016 - 13:18
#permalink

Самый короткий способ:

var years=prompt('Сколько вам лет?', '100'); // return string | null
	if (!years) { // будет истина только если вернет строку
	    alert('Вы не указали свой возраст!');
	}
	else {
	    alert('Вам '+years+' лет!');
	}

Но в 2016 году ни один из представленных способов не работает, если нажать Отмена. Возвращает все равно null. За исключением IE.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
5 + 3 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum