[英]Number validation javascript doesn't work
我的電話號碼驗證不起作用,我也不知道為什么。 當數字長度為9或10時,提交應處於活動狀態,否則應禁用提交。這是代碼
HTML正文:
<body>
<input type="number" name="number-189" value="" class="example1" id="numertel" min="500000000" max="900000000" aria-invalid="false">
<input type="submit" value="Send" class="example" id="przycisk">
<script src="script.js"></script>
</body>
JS
var numertell = document.getElementById("numertel");
var numerlength = numertell.value.length;
if(numerlength==10 && numerlength==9)
document.getElementById("przycisk").disabled=false;
else
document.getElementById("przycisk").disabled=true;
當數字長度為9或10時,提交應處於活動狀態,否則應禁用提交
你的問題是這條線
if(numerlength==10 && numerlength==9)
用||
替換&&
因為numerlength
不能同時為9和10 。 查看此文檔以了解有關邏輯運算符的更多信息。
if( numerlength== 10 || numerlength==9 )
編輯
當文本框的值更改時,您需要調用上面的代碼共享。 我已經與keyup事件分享了一個示例。
演示版
document.getElementById("przycisk").disabled = true; document.getElementById("numertel").addEventListener("keyup", function() { var numerlength = this.value.length; //console.log( numerlength ); if (numerlength == 10 || numerlength == 9) document.getElementById("przycisk").disabled = false; else document.getElementById("przycisk").disabled = true; });
<input type="number" name="number-189" value="" class="example1" id="numertel" min="500000000" max="900000000" aria-invalid="false"> <input type="submit" value="Send" class="example" id="przycisk">
嘗試這個....
function check_value() { var numertell = document.getElementById("numertel"); var numerlength = numertell.value.length; if(numerlength == 10 || numerlength ==9) document.getElementById("przycisk").disabled=false; else document.getElementById("przycisk").disabled=true; }
<body> <input type="number" name="number-189" value="" class="example1" id="numertel" min="500000000" max="9000000000" aria-invalid="false" onblur = "check_value();"> <input type="submit" value="Send" class="example" id="przycisk"> <script src="script.js"></script> </body>
您還應該將該條件放入輸入事件中,並在該事件中分配新的numertell值,如下所示:
var numertell = document.getElementById("numertel"); var numerlength = numertell.value.length; if (numerlength === 10 || numerlength === 9) document.getElementById("przycisk").disabled = false; else document.getElementById("przycisk").disabled = true; numertell.addEventListener('input', function(evt) { numerlength = numertell.value.length; if (numerlength === 10 || numerlength === 9) document.getElementById("przycisk").disabled = false; else document.getElementById("przycisk").disabled = true; });
<body> <input type="number" name="number-189" value="" class="example1" id="numertel" min="500000000" max="900000000" aria-invalid="false"> <input type="submit" value="Send" class="example" id="przycisk"> <script src="script.js"></script> </body>
html >>>
<body>
<input type="number" name="number-189" value="1234" class="example1" id="numertel" min="500000000" max="900000000" aria-invalid="false" onkeydown="myFunction()">
<input type="submit" value="Send" class="example" id="przycisk" >
<script src="script.js"></script>
</body>
javascript >>>
$(document).ready(function(){
myFunction();
});
function myFunction() {
var numertell = document.getElementById("numertel");
var numerlength = numertell.value.length;
if(numerlength==10 || numerlength==9)
document.getElementById("przycisk").disabled=false;
else
document.getElementById("przycisk").disabled=true;
}
請試試
if(numerlength === 10 || numerlength === 9)
。
||
是Java語言中“或”操作的運算符。 為了進行比較,還應使用===
而不是==
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.