Простой калькулятор на 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> |
Форму не надо отправлять
<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> |
У вас решение лучше ! но я поменял кнопку на ссылку и заработало!
<!--<input type="submit" value="=" onclick="bnClick()">--> <a onclick="bnClick()"> = </a> |
Цитата:
|
vanished
|
:write:
const input = "1 +2 *3"; const tokens = input.match(/[-+*/()]|\d+/g)||[]; alert(tokens); |
vanished
|
Цитата:
|
vanished
|
Цитата:
|
Часовой пояс GMT +3, время: 02:20. |