为什么此验证码不起作用?

时间:2015-04-07 21:06:36

标签: javascript validation

我查看了我的代码并更改了它,一切看起来都没问题我只是不明白为什么它不起作用!当我在浏览器中打开它并输入电话号码并按下按钮时没有任何反应。它没有像我想要的那样提醒我。

<html>
<head>
<title>Phone Number Validation</title> 
</head>
<body>
<script language="javascript">
window.onload=function(){
    document.getElementById("valButton".onclick=validateIt;
}

function validateIt(){
    var phoneno = /^\d{10}$/;
    if((inputtxt.value.match(phoneno))
        {
    alert("Yay it's a phone number!");      
    return true;
        }
      else
        {
        alert("Not a valid number");
        return false;
        }
}
</script>
<p>Phone Number Validation:</p>
<p>Enter a phone number here:<br>
    <input type="text" size=30 id="phoneno" /><br>
    <input type="button" value="Validate" id="valButton" />
</p>
</body>
</html

3 个答案:

答案 0 :(得分:1)

在输入中添加"onblur=phonenumber()",以便在控件离开输入时触发调用该功能(单击或标签离开)。

答案 1 :(得分:0)

您编写的功能永远不会被执行。您需要在按钮和/或输入本身上添加事件处理程序。最简单的方法是在DOMContentLoaded事件触发(已解析DOM)之后。

var btn = document.getElementById( 'valButton' );
btn.addEventListener( 'DOMContentLoaded', function(){
  var txt = document.getElementById( 'phoneno' ).value;
  if ( phonenumber( txt ) ) {
   alert( 'Test passed. Do stuff here' );
  } else {
   alert( 'Test failed!!' );
  }
}, false );

同样,如果你想在人离开输入字段后自动检查,你可以使用:

var input = document.getElementById( 'phoneno' );
input.addEventListener( 'blur', function(){
  if ( phonenumber( input.value ) ) {
   alert( 'Test passed. Do stuff here' );
  } else {
   alert( 'Test failed!!' );
  }
}, false );

答案 2 :(得分:0)

的问题:

1-永远不会调用该函数

2-该函数有语法错误

function phonenumber(inputtxt) {
    var pattern = "/^\d{10}$/",
        phoneno = new RegExp(pattern);
  if (inputtxt) {
     if(inputtxt.match(phoneno)) {
         return true;
      } else {
        alert("message");
        return false;
      }
   }
}
//Using jQuery for DOM manipulation you can execute the function on validate button click
$('#valButton').on('click', function () {
    var phoneInputValue = $('#phoneno').val();
    phonenumber(phoneInputValue);
});

在这里结帐固定代码: https://jsfiddle.net/au7aft0k/2/