Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.11.2018, 11:17
Аспирант
Отправить личное сообщение для zava75 Посмотреть профиль Найти все сообщения от zava75
 
Регистрация: 13.07.2018
Сообщений: 34

Простой калькулятор на js
Добрый день. Я только начал изучать js - скажите почему не работает , сбрасываются значения и как решить задачу. Спасибо
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="css/name.css">
</head>
<body>
<div class="contener">
    <h1>Изучаем JS</h1>
    <form name="formCl">
        <input type="number" id="numX">
        <br>
        <input type="number" id="numY">
        <br>
        <select id="ope">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <br>
        <input type="submit" value="=" onclick="btnClick()">
    </form>
    <br>
    <p id="das" class="das">Результат: </p>
</div>
<script>
var x, y, oper, resul, form = document.formCl;

function btnClick() {
    form = document.formCl;
    x = form.numX.value;
    y = form.numY.value;
    oper = form.ope.value;
    console.log(x);
    console.log(y);
    console.log(oper);
    console.log(resul);
    switch (oper) {
        case "+": {
            resul = +x + +y;
            document.getElementById("das").innerText = resul;
            // break;
        }
        case "-": {
           return resul = x - y;
            // break;
        }
        case "*": {
            resul = x * y;
            // break;
        }
        case "/": {
            resul = x / y;
            // break;
        }
    };
    console.log(x);
    console.log(y);
    console.log(oper);
    console.log(resul);
    if(resul != undefined && resul != null) {
        document.getElementById("das").innerText = resul;
    };
};

</script>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2018, 11:23
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Форму не надо отправлять
<form name="formCl" onsubmit="return false;">


UPD
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="css/name.css">
</head>
<body>
<div class="contener">
    <h1>Изучаем JS</h1>
    <form name="formCl" onsubmit="btnClick(); return false;">
        <input type="number" id="numX">
        <br>
        <input type="number" id="numY">
        <br>
        <select id="ope">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <br>
        <input type="submit" value="=">
    </form>
    <br>
    <p id="das" class="das">Результат: </p>
</div>
<script>


function btnClick() {
	var x, y, operator, result, form = document.formCl;

	x = Number(form.numX.value);
	y = Number(form.numY.value);
	operator = form.ope.value;

	var operations = {
		"+": (a, b) => a + b,
		"-": (a, b) => a - b,
		"*": (a, b) => a * b,
		"/": (a, b) => a / b,
	};

	if(operator in operations) {
		result = operations[operator](x, y);
	} else {
		result = "Неверный оператор";
	}

	console.log(x, operator, y, result);

	document.getElementById("das").textContent = `${x} ${operator} ${y} = ${result}`;
};

</script>
</body>
</html>

Последний раз редактировалось Malleys, 10.11.2018 в 11:40.
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2018, 11:54
Аспирант
Отправить личное сообщение для zava75 Посмотреть профиль Найти все сообщения от zava75
 
Регистрация: 13.07.2018
Сообщений: 34

У вас решение лучше ! но я поменял кнопку на ссылку и заработало!
<!--<input type="submit" value="=" onclick="bnClick()">-->
<a onclick="bnClick()"> = </a>
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2018, 12:13
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от zava75 Посмотреть сообщение
У вас решение лучше ! но я поменял кнопку на ссылку и заработало!
<!--<input type="submit" value="=" onclick="bnClick()">-->
<a onclick="bnClick()"> = </a>
Но это не отменяет того, что форма может быть отправлена, например, когда вы редактируете поле и нажимаете Enter
Ответить с цитированием
  #5 (permalink)  
Старый 11.11.2018, 20:51
Аватар для GayCoder
Аспирант
Отправить личное сообщение для GayCoder Посмотреть профиль Найти все сообщения от GayCoder
 
Регистрация: 28.01.2016
Сообщений: 99

vanished

Последний раз редактировалось GayCoder, 02.08.2020 в 16:15.
Ответить с цитированием
  #6 (permalink)  
Старый 11.11.2018, 22:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105


const input = "1 +2 *3";
const tokens = input.match(/[-+*/()]|\d+/g)||[];
alert(tokens);
Ответить с цитированием
  #7 (permalink)  
Старый 12.11.2018, 03:41
Аватар для GayCoder
Аспирант
Отправить личное сообщение для GayCoder Посмотреть профиль Найти все сообщения от GayCoder
 
Регистрация: 28.01.2016
Сообщений: 99

vanished

Последний раз редактировалось GayCoder, 02.08.2020 в 16:15.
Ответить с цитированием
  #8 (permalink)  
Старый 12.11.2018, 07:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от GayCoder
полноценный лексер
а результат чем-то отличается?
Ответить с цитированием
  #9 (permalink)  
Старый 12.11.2018, 21:50
Аватар для GayCoder
Аспирант
Отправить личное сообщение для GayCoder Посмотреть профиль Найти все сообщения от GayCoder
 
Регистрация: 28.01.2016
Сообщений: 99

vanished

Последний раз редактировалось GayCoder, 02.08.2020 в 16:15.
Ответить с цитированием
  #10 (permalink)  
Старый 12.11.2018, 21:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от GayCoder
Наглядно чем плох твой код:
что не так?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно сделать простой калькулятор webxmm Работа 19 24.03.2017 03:41
Простой калькулятор Valentinushka Элементы интерфейса 3 10.01.2016 20:29
Простой калькулятор под Joomla 3.3 artvasya Общие вопросы Javascript 0 24.02.2015 20:04
Помогите найти калькулятор на js GennadiyZm Общие вопросы Javascript 1 29.07.2011 16:26