Простой калькулятор на 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, время: 22:42. |