Вход

Просмотр полной версии : Проверка входящих данных PROMPT


demi379
14.08.2019, 17:04
Есть часть кода . Для дружественных посиделок.
ВОПРОС: как для первого ПРОМПТа сделать проверку данных?
Например ЕСДИ СТРОКА ПУСТАЯ, NULL, ДЛИННА > 2 и ВВЕДЕНА НЕ ЦИФРА, то должно выводится собщение НЕКОРЕКТНО ВВЕДЕНЫ ДАННЫЕ и заново задаться этот вопрос, если все ок, то продолжение работы скрипта.

пробовал через if (kol != null && koll.lenght>2){вставлял часть кода где вопро КА ЗОВУТ ГОСТЕЙ}else {i = i -1 НЕ ЗНАЮ ЧТО ПРИДУМАТЬ}

Это вообще возможно сделать с этим кодом, вертел как мог уже, или надо лазейки искать и другие пути? ЗАРАНЕЕ СПАСИБО, МОЖЕТ КТО ПОМОЖЕТ
и второй вопрос там где 18 строка можно задать условие что if true то спрашивает какая цена else false то просто продолжается работа
НАДЕЮСЬ СМОГ ОБЬЯСНИТЬ ПРОБЛЕМУ

'use strict';
var array = [];

let kol = +prompt("Сколько человек Вас было сегодня?", 'Введите цифру');
for (let i = 0; i < kol; i++) {
let name = prompt("Как зовут гостей?");
array.push(name);
}
console.log(kol);
console.log(array);

var mass = array.map(function(item){
return +prompt('На сколько поел ' + item + ' ?');
})
console.log(mass);
let vopros = confirm('Заказывали кальян');
if (vopros == true) {
var zaKalyan = +prompt('Цена за кальян');
showKaliyan();
} else if (vopros == false)
alert('Молодцы')
function showKaliyan(){
let kalyan = [];
for ( let i = 0; i < array.length; i++) {
let otvet = confirm(array[i] + " курил кальян?");
kalyan.push(otvet);
};
alert(kalyan);

kalyan.forEach(function(item, i){
if (item == true){
console.log( array[i] + ',' + ' курил кальян.');
}
else if (item == false){
console.log( array[i] + ',' + ' не курил кальян.');
};
});

let skolkoKyriloChelovek = 0;
for (var i = 0; i < kalyan.length; i++) {
if(kalyan[i] == true)
skolkoKyriloChelovek++;
}
console.log('Количество людей куривших кальян: ' + skolkoKyriloChelovek );

let zaKalyanSCheloveka = zaKalyan / skolkoKyriloChelovek;
console.log('За кальян с человека: ' + zaKalyanSCheloveka);

kalyan.forEach(function(item, i){
if (item == true){
console.log(array[i] + ',' + ' должен: ' +(mass[i] + zaKalyanSCheloveka));
}
else if (item == false){
cpnsole.log( array[i] + ' ' +' не курил.' + 'За еду: ' + mass[i]);
};
});
}
var result = mass.reduce(function(sum, current){
return sum + current;
},0 );
alert("Общий счет должен быть: " + result)

рони
14.08.2019, 17:34
demi379,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:


... минимальный код страницы с вашей проблемой


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

demi379
14.08.2019, 17:47
да, спасибо, отредактировал. Но если вставляю часть кода, то он не запускается, не знаю в чем причина

рони
14.08.2019, 18:10
demi379,
let kol;
do {
kol = prompt("Сколько человек Вас было сегодня?", 'Введите цифру');
} while (isNaN(+kol) || kol === null || +kol < 1 || +kol > 99)
kol = Number(kol);
alert(kol);

demi379
15.08.2019, 09:30
спасибо большое.
подскажите пожалуйста kol = Number(kol); Number что собой представляет? ГУГЛ явно не то выдает, что здесь подразумевается
а 2 вопрос , можно ли все таки сделать чтобы если true то задается цена а если false (CANCEL) то что бы просто шли следующие шаги безо всяких действий, мол если нажал CANCEL то на else даже внимание не акцинтируется
let vopros = confirm('Вопрос');
if (vopros == true) {
var zaKalyan = +prompt('Цена?');
showKaliyan();
} else if (vopros == false)
alert('Молодцы')

ksa
15.08.2019, 10:20
подскажите пожалуйста kol = Number(kol); Number что собой представляет? ГУГЛ явно не то выдает
Просто не так спрашивал...
https://javascript.ru/NUMBER

ksa
15.08.2019, 10:25
if (vopros == true){...}
Достаточно просто
if (vopros){...}
if (vopros == false){...}
if (!vopros){...}

ksa
15.08.2019, 10:27
можно ли все таки сделать чтобы если true то задается цена а если false (CANCEL) то что бы просто шли следующие шаги безо всяких действий, мол если нажал CANCEL то на else даже внимание не акцинтируется
Разумеется...
let vopros = confirm('Вопрос');
if (vopros) {
var zaKalyan = +prompt('Цена?');
}
alert('Следующие шаги...');

demi379
15.08.2019, 10:44
спасибо:)