在Javascript表单验证中无法识别"不等于"符号

use*_*736 4 html javascript forms validation

任何人都可以告诉我如何改进这段代码,最重要的是将我的电子邮件验证排序,以便在Z不相等或串"电子邮件"的所有情况下工作

所有字段都以适当的措辞开头,作为客户的示例.

亲切的问候提前.

function validateForm()
{
//Uses HTML field IDs
var x=document.forms["myForm"]["name"].value;
var y=document.forms["myForm"]["phone"].value;
var z=document.forms["myForm"]["email"].value;

//Name locator
    if (x==null || x=="" || x=="Name")
      {
      alert("Please enter the your name.");
      return false;
}

//Contact method locator
    if ((y==null || y=="" || y=="Phone Number")&&(z==null || z=="" || z=="Email"))
      {
      alert("Please enter a contact method.");
      return false;
}

//Phone numeric validation, this runs if Email field is not edited
    if (z==null || z=="" || z=="Email")
    {
    if (isNaN(y)||x.indexOf(" ")!=-1)
      {
      alert("Telephone must be a numeric value.");
      return false;
      }
}

//Phone length validation, this runs if Email field is not edited
    if (z==null || z=="" || z=="Email")
    {
    if (y.length > 14)
      {
      alert("Telephone must be valid.");
      return false;
        }
}

//Email validation, does not work, this should run only when something is entered into the field
    if (z!=null || z!="" || z!="Email")
    {
    var atpos=z.indexOf("@");
    var dotpos=z.lastIndexOf(".");
        if (atpos<1 || dotpos<atpos+2 || dotpos+2>=z.length)
      {
      alert("This is not a valid e-mail address");
      return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ver*_*539 5

你可以做一些事情.

z==null || z==""可以用!Boolean(z)或替换!z

z!=null || z!=""可以用Boolean(z)或替换!!z

您还应该尝试始终使用===而不是==,除非您期望类型强制.

所以你的检查z == "Email"可能会改变为这样的z.toLowerCase() === "email"

它似乎也重复代码 - > z==null || z=="" || z=="Email"(x2).您可以组合电话数字验证和电话长度验证.