Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.08.2019, 17:04
Интересующийся
Отправить личное сообщение для demi379 Посмотреть профиль Найти все сообщения от demi379
 
Регистрация: 07.08.2019
Сообщений: 14

Проверка входящих данных PROMPT
Есть часть кода . Для дружественных посиделок.
ВОПРОС: как для первого ПРОМПТа сделать проверку данных?
Например ЕСДИ СТРОКА ПУСТАЯ, 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)

Последний раз редактировалось demi379, 14.08.2019 в 17:46.
Ответить с цитированием
  #2 (permalink)  
Старый 14.08.2019, 17:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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

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

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 14.08.2019, 17:47
Интересующийся
Отправить личное сообщение для demi379 Посмотреть профиль Найти все сообщения от demi379
 
Регистрация: 07.08.2019
Сообщений: 14

да, спасибо, отредактировал. Но если вставляю часть кода, то он не запускается, не знаю в чем причина
Ответить с цитированием
  #4 (permalink)  
Старый 14.08.2019, 18:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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

Последний раз редактировалось рони, 14.08.2019 в 18:23.
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2019, 09:30
Интересующийся
Отправить личное сообщение для demi379 Посмотреть профиль Найти все сообщения от demi379
 
Регистрация: 07.08.2019
Сообщений: 14

спасибо большое.
подскажите пожалуйста 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('Молодцы')
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2019, 10:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от demi379
подскажите пожалуйста kol = Number(kol); Number что собой представляет? ГУГЛ явно не то выдает
Просто не так спрашивал...
https://javascript.ru/NUMBER
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2019, 10:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от demi379
if (vopros == true){...}
Достаточно просто
if (vopros){...}

Сообщение от demi379
if (vopros == false){...}
if (!vopros){...}
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2019, 10:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

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

спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка наличия в обьекте свойства, прочитанного из prompt Tanya51 Общие вопросы Javascript 16 11.07.2017 13:24
Проверка корректности данных в форме tane Общие вопросы Javascript 1 08.04.2015 08:28
Фоновая проверка данных формы перед отправкой egreek AJAX и COMET 6 20.07.2013 11:17
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Проверка данных формы составным условием? myafa Элементы интерфейса 8 01.04.2011 08:30