为什么这个javascript手机字段形式验证器不起作用?

时间:2012-07-19 09:02:52

标签: javascript html

此电话号码验证器不起作用:/。为什么呢?

理想情况下,如果可选的电话字段不为空,则应继续验证表单。

电话字段是可选的,不是必需的。

验证表格:

  • 电话字段是可选的。这意味着它不是必需的。
  • 它应该忽略比较除数字之外的所有内容。
  • 如果数字计数是!= 10个数字,则应显示错误。
  • 如果计数等于10位,则应传递给name.php(参见HTML)

Javascript代码:

function validateForm() {
var x=document.forms["form"]["name"].value;
if (x==null || x=="")
  {
  alert("Name is required.");
  return false;
  }

var y=document.forms["form"]["email"].value;
var atpos=y.indexOf("@");
var dotpos=y.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=y.length)
  {
    alert("Valid email required.");
    return false;
  }

var formValue = document.forms["form"]["number"].value;
var regExpressionValue = /[^\d.]/g;
if (formValue !== null)
{
  if (regExpressionValue.test(formValue) !== true)
  {
    alert("Optional phone number invalid. Example: [1234567890].");
    return false;
  }
}

return true;

}

HTML:

<form class="form" id="form" name="form" method="post" action="name.php" onsubmit="return validateForm()" />
<input type="text" name="name" id="name" />
<input type="text" name="email" id="email" />
<input type="tel" name="number" id="number" />
<button type="submit" value="Send" />Sign Up</button>
<div class="spacer"></div>
</form>

2 个答案:

答案 0 :(得分:0)

你的正则表达式错了。试试这个

if (/^\d{10}$/.test(formValue) === false) {
    alert("Optional phone number invalid. Example: [1234567890].");
    return false;
}

答案 1 :(得分:-4)

您的电子邮件号码的正则表达式和字符串存在检查错误。看看这个:

function validateForm() {
   var x=document.forms["form"]["name"].value;
   if (x==null || x=="")
   {
     alert("Name is required.");
     return false;
   }

  var y=document.forms["form"]["email"].value;
  var atpos=y.indexOf("@");
  var dotpos=y.lastIndexOf(".");
  if (atpos<1 || dotpos<atpos+2 || dotpos+2>=y.length)
   {
     alert("Valid email required.");
     return false;
   }
  var formValue = document.forms["form"]["number"].value;
  if (formValue)
  {
  var regExpressionValue = /^(\d-?){10}$/g;
    if (regExpressionValue.test(formValue) !== true)
    {
      alert("Optional phone number invalid. Example: [1234567890].");
      return false;
   }
 }

return true;
}