繁体   English   中英

即使满足条件,这也不会返回“if”语句

[英]This will not return the "if" statement, even though terms are met

此代码应检测数字高于 1,000,000,000 和低于 9,999,999,999 的位置。 我尝试在这两个值之间输入数字,但它仍然返回 else 语句。 这段代码的问题在哪里?

 <html> <head> <title>Checking with RegExp</title> </head> <body> <p>Enter a 10 digit number between 1000000000 and 9999999999.</p> <textarea id="inputnumber"></textarea> <button type="button" id="submitnumber">Check</button> <script> function checknumber() { var tendigitnum = document.getElementById("inputnumber") if (tendigitnum >= 1000000000 && tendigitnum <= 9999999999) { alert("You entered the number" + tendigitnum + ".") } else { alert("The page will refresh. Please enter a valid number.") location.reload() } } document.getElementById("submitnumber").onclick = checknumber </script> </body> </html>

您正在将 HTML 元素与数字进行比较。 您想将一个数字与一个数字进行比较,方法是:

  1. 使用元素的.value属性获取字符串,以及

  2. 将该字符串解析为一个数字(根据您的用例,您有很多不同的方法来执行此操作;请参阅此答案以获取它们的列表)

例如:

var tendigitnum = Number(document.getElementById("inputnumber").value);

现场示例:

 function checknumber() { var tendigitnum = Number(document.getElementById("inputnumber").value) if (tendigitnum >= 1000000000 && tendigitnum <= 9999999999) { alert("You entered the number" + tendigitnum + ".") } else { alert("The page will refresh. Please enter a valid number.") location.reload() } } document.getElementById("submitnumber").onclick = checknumber
 <p>Enter a 10 digit number between 1000000000 and 9999999999.</p> <textarea id="inputnumber"></textarea> <button type="button" id="submitnumber">Check</button>


在现代浏览器上,您可以使用数字输入:

<input type="number" id="inputnumber">

并使用其valueAsNumber属性而不是value ,因为valueAsNumber已经是一个数字。 您甚至可以将范围验证添加到输入中。 有关MDN的更多信息。

您需要检查元素中的值,在您的代码中您正在检查元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM