![](/img/trans.png)
[英]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.