输入数字值减去第二个输入数字值将返回NaN

时间:2019-08-30 09:18:16

标签: jquery html

例如,当我在.res输入中写入50,在第二输入.res2中写入25,然后单击等于时,它必须减去,但警报返回的不是数字

<div class="wind">
     <input class="res" value=" " maxlength="24">
     <input class="res2" value=" " maxlength="24">
     <button class="equal">=</button>
<div class="numbers">
$(".one,.two,.three,.four,.five,.six,.seven,.eight,.nine,.zero,.dot").on('mousedown',function(event){
    event.preventDefault();
    if($('.res').is(":focus")){
        firstNumber = $('.res').val(Number(($('.res').val()) + $(this).val()));
} else {
    secondNumber = $('.res2').val(Number(($('.res2').val()) + $(this).val()));
    }
})
$('.equal').click(function(){
    alert(firstNumber-secondNumber);
})

1 个答案:

答案 0 :(得分:2)

firstNumbersecondNumber变量是在第一次点击处理程序中定义的,超出了.equal点击处理程序的范围。当发生该事件时,您需要从DOM中检索值,如下所示:

$('.equal').click(function() {
  var firstNumber = parseInt($('.res').val(), 10);
  var secondNumber = parseInt($('.res2').val(), 10);
  console.log(firstNumber - secondNumber);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wind">
  <input class="res" value="50" maxlength="24">
  <input class="res2" value="25" maxlength="24">
  <button class="equal">=</button>
  <div class="numbers"></div>
</div>