[英]Javascript function inside if statement still runs even though condition is not met
[英]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 元素与数字进行比较。 您想将一个数字与一个数字进行比较,方法是:
使用元素的.value
属性获取字符串,以及
将该字符串解析为一个数字(根据您的用例,您有很多不同的方法来执行此操作;请参阅此答案以获取它们的列表)
例如:
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.