数字验证javascript不起作用

时间:2017-11-02 11:41:34

标签: javascript html web

我的电话号码验证不起作用,我不知道为什么。 当号码长度为9或10时,提交应该是活动的,在其他情况下应该禁用提交。这是代码

HTML正文:

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;

JS

{{1}}

5 个答案:

答案 0 :(得分:7)

  

在号码长度为9或10时,提交应该是有效的,在其他情况下   提交应该被禁用

你的问题就在这一行

if(numerlength==10 && numerlength==9)

&&替换为||,因为numerlength 不能同时为9和10 。请查看此doc以了解有关逻辑运算符的更多信息。

if( numerlength== 10 || numerlength==9 )

修改

当文本框的值发生变化时,您需要调用上面的代码分享。我与 keyup 事件共享了一个示例。

<强>演示

&#13;
&#13;
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;
});
&#13;
<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">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个......

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>

答案 2 :(得分:0)

您还应该将该条件放在输入事件中,并在该事件中指定新的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>

答案 3 :(得分:0)

html&gt;&gt;&gt;

<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&gt;&gt;&gt;

$(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;
}

答案 4 :(得分:0)

请尝试

if(numerlength === 10 || numerlength === 9)

||是Javascript中“OR”操作的运算符。另外,为了进行比较,应使用===而不是==