Спасибо огромное;)
нужна была обработка веденного ключа на
правильное, неправильное значения и на отмену ввода
до этого момента не знал как разделить последние два события..
Размеры и положение модальных окон регулируются браузерами самостоятельно. На них никак нельзя повлиять. Поэтому там, где требуется красивая форма ввода, не используют prompt, а получают значение из красиво нарисованной на HTML формы
В том примере не доработка.
Скрипт расщитан на вывод alert(ом) данные введенные тогда...
но если пользователь оставит поле пустым он выведет "Вам null лет", нужно исправить:
var years=prompt('Сколько вам лет?','100');
if (years == '') {var years = '0';alert('Вам '+years+' лет!');}
else {alert('Вам '+years+' лет!');}
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
Попроще, чтоб два раза не выскакивало, я сразу в окно поместил ответы, вот мой пример:
var imya = prompt ("Напишите свое имя здесь:"," ");
var gody = prompt ("Напишите, сколько вам лет здесь:"," ");
var nastroenie = prompt ("Напишите, какое у вас настроение здесь:"," ");
document.write("Здравствуй, " + imya + "! Тебе");
document.write(" " + gody + " лет(год),");
document.write(" и у тебя " + nastroenie + " настроение!");
document.write(" Всё верно, не так-ли?!");
Параметр value использовать все же рекомендуется, т.к. в ИЕ по умолчанию в поле написано undefinded, но мы ведь этого не хотим, верно?
поэтому так корректнее:
promt("Введите что нибудь","")
Собрал в работающий пример всё прозвучавшее в комментариях, добавил замену запятой на точку, проверку на допустимость значения и выбор "год-года-лет":
<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>
// тут ещё нужно условие на 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>' )
Извеняюсь за спам, пишу снова!
Возможно ли и каким обазом ,задав значение переменной можно задать ею значение атрибута тега?
<Скрипт>
x1=prompt("...");
y1=prompt("...");
.
<Имг срк="1.jpg" style="position:absolute;left:x1;top:y1.
P.S. сея прога не работает, как ее можно исправить?
var years=prompt('Сколько вам лет?', '100'); // return string | null
if (!years) { // будет истина только если вернет строку
alert('Вы не указали свой возраст!');
}
else {
alert('Вам '+years+' лет!');
}
Но в 2016 году ни один из представленных способов не работает, если нажать Отмена. Возвращает все равно null. За исключением IE.
Здравствуйте! А как можно сделать так, чтобы в огромном "вопроснике", после неудачного ответа в середине "вопросника", выводила обратно на этот же вопрос, а не в начало "вопросника"?
Написать код на JavaScript который будет: Спрашивать у пользователя имя, фамилию и возраст. После чего будет отвечать: “Здравствуйте [Имя] [Фамилия] вы совершенолетний или вы несовершено летний
Привет! Просто решение null:
if (years=prompt('Сколько вам лет?',100))
alert('Вам '+years+' лет!');
Если пользователь нажмёт Отмена, то никакого alerta не будет. Хотя можно и его задать:
else
alert('Вы отказались отвечать на этот вопрос!');
Проверять на цифры в данном конкретном случае не имеет смысла - я могу написать, что мне сто лет.
а как можно задать координаты окна prompt? В Firefox оно в центре окна,а в IE - в левом верхнем углу. Нельзя его оттуда перетащить?
нет
Спасибо огромное;)
нужна была обработка веденного ключа на
правильное, неправильное значения и на отмену ввода
до этого момента не знал как разделить последние два события..
объясните пожалуйста, как исправить размер модального окна в IE ?
с методом prompt
вот это окно в Опере
и оно же в IE
Уважаемый товарищ, у меня тот же вопрос. Если Вы уже знаете ответ, то прошу сообщить и мне. Спасибо.
Размеры и положение модальных окон регулируются браузерами самостоятельно. На них никак нельзя повлиять. Поэтому там, где требуется красивая форма ввода, не используют prompt, а получают значение из красиво нарисованной на HTML формы
В том примере не доработка.
Скрипт расщитан на вывод alert(ом) данные введенные тогда...
но если пользователь оставит поле пустым он выведет "Вам null лет", нужно исправить:
/// ... ///
тогда уж либо
либо
var years=prompt('Сколько вам лет?','100');
if (years == '') {var years = '0';}
alert('Вам '+years+' лет!');
Лучше:
А вобще null и пустая строка - разные вещи, а значит здесь как проверку нужно использовать:
А вообще, лучше всунуть в цикл и проверить что вводится именно число:
Ну и идеальный вариант - объёдинить проверку на null и на NaN
years = parseInt(years, 10); // округляем => если не число, то NaN
упс, глюкануло: parseInt - выделение числ. части, конечно.
а почему именно число , может с айпона голосовым вводом вводят - и там строка появится.
Как избавиться от самопроизвольного повторного выскакивания промптовского окна после получения результата?
Попроще, чтоб два раза не выскакивало, я сразу в окно поместил ответы, вот мой пример:
Параметр value использовать все же рекомендуется, т.к. в ИЕ по умолчанию в поле написано undefinded, но мы ведь этого не хотим, верно?
поэтому так корректнее:
promt("Введите что нибудь","")
Собрал в работающий пример всё прозвучавшее в комментариях, добавил замену запятой на точку, проверку на допустимость значения и выбор "год-года-лет":
Возможно ли и каким обазом ,задав значение переменной можно задать ею значение атрибута тега?
x1=prompt("...");
y1=prompt("...");
(например тега
P.S. сея прога не работает, как ее можно исправить?
Возможно ли и каким обазом ,задав значение переменной можно задать ею значение атрибута тега?
<Скрипт>
x1=prompt("...");
y1=prompt("...");
<
(например тега
P.S. сея прога не работает, как ее можно исправить?
Извеняюсь за спам, пишу снова!
Возможно ли и каким обазом ,задав значение переменной можно задать ею значение атрибута тега?
<Скрипт>
x1=prompt("...");
y1=prompt("...");
.
<Имг срк="1.jpg" style="position:absolute;left:x1;top:y1.
P.S. сея прога не работает, как ее можно исправить?
А как сделать так,чтобы если ответ в промпте не целевой,опять отрывался начальный промпт,после второго сообщения.?
Самый короткий способ:
Но в 2016 году ни один из представленных способов не работает, если нажать Отмена. Возвращает все равно null. За исключением IE.
как ввести данные в яваскрипт без модального окна? просто на странице в окошке среди текста. нужен калькулятор валют, только без всплывающих окон.
элементарно Ватсон: меняете кому нибудь innerHTML
Здравствуйте! А как можно сделать так, чтобы в огромном "вопроснике", после неудачного ответа в середине "вопросника", выводила обратно на этот же вопрос, а не в начало "вопросника"?
я понял, через do...while, а можно небольшой кодик, в пример этому способу?(
Написать код на JavaScript который будет: Спрашивать у пользователя имя, фамилию и возраст. После чего будет отвечать: “Здравствуйте [Имя] [Фамилия] вы совершенолетний или вы несовершено летний
как это сделать
Привет! Просто решение null:
if (years=prompt('Сколько вам лет?',100))
alert('Вам '+years+' лет!');
Если пользователь нажмёт Отмена, то никакого alerta не будет. Хотя можно и его задать:
else
alert('Вы отказались отвечать на этот вопрос!');
Проверять на цифры в данном конкретном случае не имеет смысла - я могу написать, что мне сто лет.
ДА КАК С КЛАВЫ-ТО ПЕЧАТАТБ!!!
КАК?!?!?!?!?!?!?!?!?!?!??!?!?!?!?!?!?!?!?!?!
читай официальную документацию))
а что значит prompt с плюсом? видел как-то такое выражение:
var x = +prompt...
В число переводит
На вопрос в примере отвечаю "меньше чем зим"
все обоснованно, самодостаточно и работает великолепно.
Перечитайте предложенный ниже примера шлак.
На вопрос в примере отвечаю "меньше чем зим"
все обоснованно, самодостаточно и работает великолепно.
Перечитайте предложенный ниже примера шлак.