检查数字是否大于0

时间:2019-01-27 13:27:23

标签: javascript

我有一个id =“ availableSeats”的跨度和一个id =“ confirmButton”的按钮。 我想检查availableSeats是否大于0,然后将禁用的属性删除到confirmButton。

这不起作用:

function checkSeats() {
var freeSeats = document.getElementById("availableSeats").value;

if ( !(freeSeats > 0)) {
document.getElementsById("confirmButton")[0].removeAttribute("disabled", "disabled"); 
}

5 个答案:

答案 0 :(得分:2)

一些问题:

  • 由于您的元素是span,因此应使用textContent属性。

  • 要将该值解释为数字,应将字符串转换为数字

  • getElementById是单数(没有s,没有数组)。

  • removeAttribute方法仅接受一个参数。

function checkSeats() {
  var freeSeats = document.getElementById("availableSeats").textContent;
//                                                          ^^^^^^^^^^
  if (+freeSeats > 0) {
//    ^^
    document.getElementById("confirmButton").removeAttribute("disabled");
//                        ^^                ^^               ^^^^^^^^
  }
}

checkSeats();
<span id="availableSeats">10</span>

<button id="confirmButton" disabled>confirm</button>

答案 1 :(得分:1)

访问输入值时,其类型为字符串。您需要使用Number(value)或parseInt(number)

将其转换为数字
if (parseInt(freeSeats) > 0) {
document.getElementsById("confirmButton")[0].removeAttribute("disabled", "disabled"); 
}

答案 2 :(得分:0)

您可以尝试

if ( parseInt(freeSeats) > 0) {
document.getElementById('confirmButton').disabled = false;
}

答案 3 :(得分:-1)

您正在比较span元素的值,除非您为其分配值,否则该元素没有值。将其设置为input标签,即可正常使用。
例如:<input id="availableSeats" type="number">
有人可以在其中输入数字,然后当该人按下按钮时,它将使用输入的值来运行您的代码。

答案 4 :(得分:-1)

从输入元素获取的值始终是字符串,因此在比较之前必须使用parseIntparseFloat将值转换为数字。

function checkSeats() {
  var freeSeats = document.getElementById("availableSeats").value;

  if (parseInt(freeSeats) > 0) {
    document.getElementsById("confirmButton")[0].removeAttribute("disabled", "disabled"); 
  }
}