как сделать калькулятор в JQuery, когда мы добавим новое уравнение, которое удалит старое значение eval и заменит новое значение кнопки в JQuery? - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь заменить значение ответа новым значением в моем jQuery калькуляторе, но он не заменяет ответ. Скорее, это добавляет к следующему ответу.

$("#btn1").click(function() {
  $("#preview").val($("#preview").val() + $("#btn1").val())
});
$("#btn2").click(function() {
  $("#preview").val($("#preview").val() + $("#btn2").val())
});
$("#btn4").click(function() {
  $("#preview").val($("#preview").val() + $("#btn4").val())
});
$("#btn5").click(function() {
  $("#preview").val($("#preview").val() + $("#btn5").val())
});
$("#btn6").click(function() {
  $("#preview").val($("#preview").val() + $("#btn6").val())
});
$("#btn7").click(function() {
  $("#preview").val($("#preview").val() + $("#btn7").val())
});
$("#btn8").click(function() {
  $("#preview").val($('#preview').val().substring(0, $('#preview').val().length - 1));
});

$("#btn3").click(function() {
  $("#preview").val((eval($("#preview").val())))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="preview">
<input type="button" type="button" id="btn1" value="3" onclick="showValue()">
<input type="button" id="btn2" value="4">
<input type="button" id="btn4" value="*">
<input type="button" id="btn5" value="+">
<input type="button" id="btn6" value="-">
<input type="button" id="btn7" value="/">
<input type="button" id="btn3" value="=">
<input type="button" id="btn8" value="bs">

1 Ответ

0 голосов
/ 01 февраля 2020

Вы можете хранить глобальную переменную, равную true при оценке ответа. Кроме того, ваш код может быть упрощен, как показано ниже:

let evaluated = false;

$(".input").click(function() {
  const val = evaluated ? $(this).val() : ($("#preview").val() + $(this).val())
  $("#preview").val(val)
  evaluated = false;
});

$("#btn8").click(function() {
  $("#preview").val($('#preview').val().substring(0, $('#preview').val().length - 1));
});

$("#btn3").click(function() {
  $("#preview").val((eval($("#preview").val())))
  evaluated = true;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="preview">
<input type="button" id="btn1" class="input" value="3">
<input type="button" id="btn2" class="input" value="4">
<input type="button" id="btn4" class="input" value="*">
<input type="button" id="btn5" class="input" value="+">
<input type="button" id="btn6" class="input" value="-">
<input type="button" id="btn7" class="input" value="/">
<input type="button" id="btn3" value="=">
<input type="button" id="btn8" value="bs">
...