Javascript.RU

prompt

Синтаксис

result = prompt(text[, value])

Аргументы

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

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

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

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

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

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


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

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


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

нет


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

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


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

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

и оно же в IE


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

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


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

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


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

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

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

/// ... ///


Автор: SWS (не зарегистрирован), дата: 3 августа, 2010 - 10: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 - 22: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 - 22:55
#permalink

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


Автор: Гость (не зарегистрирован), дата: 4 октября, 2020 - 19:59
#permalink

а почему именно число , может с айпона голосовым вводом вводят - и там строка появится.


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

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


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

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

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

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

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


Автор: Гость (не зарегистрирован), дата: 17 октября, 2013 - 06: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 - 06: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>' )

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

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

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

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


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

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

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


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

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


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

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


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

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

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

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

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


Автор: Гость (не зарегистрирован), дата: 3 ноября, 2016 - 01:11
#permalink

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


Автор: Гость (не зарегистрирован), дата: 7 ноября, 2016 - 17:08
#permalink

элементарно Ватсон: меняете кому нибудь innerHTML


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

Здравствуйте! А как можно сделать так, чтобы в огромном "вопроснике", после неудачного ответа в середине "вопросника", выводила обратно на этот же вопрос, а не в начало "вопросника"?


Автор: Гость (не зарегистрирован), дата: 20 ноября, 2016 - 14:02
#permalink

я понял, через do...while, а можно небольшой кодик, в пример этому способу?(


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

Написать код на JavaScript который будет: Спрашивать у пользователя имя, фамилию и возраст. После чего будет отвечать: “Здравствуйте [Имя] [Фамилия] вы совершенолетний или вы несовершено летний

как это сделать


Автор: Гость (не зарегистрирован), дата: 26 октября, 2018 - 12:45
#permalink

Привет! Просто решение null:
if (years=prompt('Сколько вам лет?',100))
alert('Вам '+years+' лет!');
Если пользователь нажмёт Отмена, то никакого alerta не будет. Хотя можно и его задать:
else
alert('Вы отказались отвечать на этот вопрос!');
Проверять на цифры в данном конкретном случае не имеет смысла - я могу написать, что мне сто лет.


Автор: Гость (не зарегистрирован), дата: 29 октября, 2018 - 20:33
#permalink

ДА КАК С КЛАВЫ-ТО ПЕЧАТАТБ!!!
КАК?!?!?!?!?!?!?!?!?!?!??!?!?!?!?!?!?!?!?!?!


Автор: Гость (не зарегистрирован), дата: 13 ноября, 2018 - 10:06
#permalink

читай официальную документацию))


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

а что значит prompt с плюсом? видел как-то такое выражение:
var x = +prompt...


Автор: Гость (не зарегистрирован), дата: 17 сентября, 2020 - 20:25
#permalink

В число переводит


Автор: admin-mail.ru (не зарегистрирован), дата: 19 января, 2019 - 17:09
#permalink

На вопрос в примере отвечаю "меньше чем зим"
все обоснованно, самодостаточно и работает великолепно.
Перечитайте предложенный ниже примера шлак.


Автор: admin-mail.ru (не зарегистрирован), дата: 19 января, 2019 - 17:09
#permalink

На вопрос в примере отвечаю "меньше чем зим"
все обоснованно, самодостаточно и работает великолепно.
Перечитайте предложенный ниже примера шлак.


 
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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