比较if语句javascript中的两个变量

问题描述 投票:1回答:4

我希望一个友好的灵魂可以帮助我解决我的JavaScript问题。

我正在尝试学习一些关于javascript和编码的一般情况,这样做我正在尝试制作我自己的内部拍卖系统,并且这样做我不希望人们能够对产品进行出价。相同或更低,所以要做到这一点我想禁用提交按钮等。

我的问题是我开始使用ID并且了解到如果我有多个具有相同ID的元素,这将无法工作,所以我开始使用类来代替。

我做了以下似乎没有工作的原因,它不会比较两个数字:(

var inputOne = document.getElementsByClassName('form-control new_bid');
var inputTwo = document.getElementsByClassName('form-control old_bid');
setInterval(function() {
  if (inputOne >= inputTwo)
    $(":submit").removeAttr("disabled");
  else
    $(":submit").attr("disabled", "disabled");
}, 1);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class='form-control old_bid' id="current_bid" name="current_bid" readonly>
<input type='text' class='form-control new_bid' id='place_bid' name='place_bid' placeholder='The bid you make are in ".getUser(false)->getOffice()->getRegion()->getCurrency()."' pattern='^[0-9]*$'>
<input id="submit_bid" type="submit" name="submit_bid" class="btn btn-primary" value="Place bid" />

提前致谢!

javascript jquery html html5 function
4个回答
2
投票

首先,你不想使用setInterval!你想使用EventListener,在这种情况下,keyup event是一个很好的。

然后你可以使用querySelector,所以你不需要jQuery来使用$('.class-selector')

正如其他人已经指出的那样,你需要使用element.value来获得所需元素的值。

然后你需要使用parseInt来获取从字符串到数字的输入值来进行数字比较。

(注意我已经删除了.new_bid上的readonly,因此您可以使用该代码段)

(function(){
  var inputOne = document.querySelector('.new_bid');
  var inputTwo = document.querySelector('.old_bid');
  var submitButton = document.querySelector('#submit_bid');
  
  var myValuesChanged = function() {
      if (parseInt(inputOne.value, 10) >= parseInt(inputTwo.value, 10)) {
          submitButton.disabled = false;
      } else {
          submitButton.disabled = true;
      }
      
      console.log('submitButton disabled: ' + submitButton.disabled);
  }
  
  inputOne.addEventListener("keyup", myValuesChanged, false);
  inputTwo.addEventListener("keyup", myValuesChanged, false);
  
})();
<input type="text" class='form-control old_bid' id="current_bid" name="current_bid">
<input type='text' class='form-control new_bid' id='place_bid' name='place_bid' placeholder='The bid you make are in ".getUser(false)->getOffice()->getRegion()->getCurrency()."' pattern='^[0-9]*$'>
<input id="submit_bid" type="submit" name="submit_bid" class="btn btn-primary" value="Place bid" />

2
投票

您需要选择正在使用的输入,并将其值解析为整数。另外,稍微改变最后一位:

var inputOne = parseInt(document.getElementsByClassName('form-control new_bid')[0].value);
var inputTwo = parseInt(document.getElementsByClassName('form-control old_bid')[0].value);
  setInterval(function () {
    if (inputOne >= inputTwo)
      $("#submit-bid").removeAttr("disabled");
      else
        $("submit-bid").attr("disabled", "disabled");
  }, 1000);

虽然既然你已经在使用jQuery而且你有ID,那么就这样做:

var inputOne = parseInt($("#current_bid").val()),
    inputTwo = parseInt($("#place_bid").val());
setInterval(function () {
    if (inputOne >= inputTwo)
      $("#submit-bid").removeAttr("disabled");
      else
        $("submit-bid").attr("disabled", "disabled");
  }, 1000);

1
投票

您需要使用inputOne.value来获取输入字段的当前值!

祝你好运学习如何编码:D


0
投票

你可以使用.value

var inputOne = document.getElementsByClassName('form-control new_bid')[0].value;
    var inputTwo = document.getElementsByClassName('form-control old_bid')[0].value;
    setInterval(function() {
      if (inputOne >= inputTwo)
        $(":submit").removeAttr("disabled");
      else
        $(":submit").attr("disabled", "disabled");
    }, 1);
© www.soinside.com 2019 - 2024. All rights reserved.