Javascript ELSE IF语句不验证信息

Javascript ELSE IF语句不验证信息,javascript,if-statement,Javascript,If Statement,验证表单一直运行良好,但我现在尝试将电子邮件验证添加到代码中,现在没有任何内容可以验证,表单提交时没有任何弹出错误框 以下是当前代码: <script type="text/javascript"> function validateForm(){ var a=document.forms["order_form"]["fname"].value; var b=document.forms["order_form"]["address"].va

验证表单一直运行良好,但我现在尝试将电子邮件验证添加到代码中,现在没有任何内容可以验证,表单提交时没有任何弹出错误框

以下是当前代码:

<script type="text/javascript">
    function validateForm(){
        var a=document.forms["order_form"]["fname"].value;
        var b=document.forms["order_form"]["address"].value;
        var c=document.forms["order_form"]["city"].value;
        var d=document.forms["order_form"]["pcode"].value;
        var e=document.forms["order_form"]["email"].value;
        var atpos=email.indexOf("@").value;
        var dotpos=email.lastIndexOf(".").value;

        if (a==null || a=="")
            {
            alert("Full name must be filled out");
            return false;
            }
        else if (b==null || b=="")
            {
            alert("Address must be filled out");
            return false;
            } 
        else if (c==null || c=="")
            {
            alert("City must be filled out");
            return false;
            }
        else if (d==null || d=="")
            {
            alert("Post-Code must be filled out");
            return false;
            }
        else if (e==null || e=="")
            {
            alert("Email Address must be filled out");
            return false;
            }
        else if (atpos<1||dotpos<atpos+2||dotpos+2>=email.length)
            {
            alert("Not a valid e-mail address");
            return false;
            }
    }
</script>

函数validateForm(){
var a=document.forms[“order_form”][“fname”]值;
var b=文件.forms[“订单”][“地址”]。值;
var c=document.forms[“order_form”][“city”]值;
var d=document.forms[“order_form”][“pcode”]值;
var e=文件.表格[“订单”][“电子邮件”].值;
var atpos=email.indexOf(“@”)值;
var dotpos=email.lastIndexOf(“.”)值;
如果(a==null | | a==“”)
{
警告(“必须填写全名”);
返回false;
}
else如果(b==null | | b==“”)
{
警报(“必须填写地址”);
返回false;
} 
else如果(c==null | | c==“”)
{
警报(“必须填写城市”);
返回false;
}
else如果(d==null | | d==“”)
{
警报(“必须填写邮政编码”);
返回false;
}
else如果(e==null | | e==“”)
{
警报(“必须填写电子邮件地址”);
返回false;
}

else if(atpos表格可能由于以下错误而提交

更改:

var atpos=email.indexOf("@").value;
var dotpos=email.lastIndexOf(".").value;

indexOf()
返回一个不是对象的数字,因此没有
属性


另外,正如@fpierrat
电子邮件
应该是
e
所注意到的,在以下内容之前,我没有看到任何电子邮件声明:

var atpos=email.indexOf("@").value;
var dotpos=email.lastIndexOf(".").value;
也许你的意思是
e
,而不是
email


在调用
indexof()
之后,也要删除
.value
,请看@charlieftl的回答,我们在这方面是非常互补的;-)

电子邮件
肯定是字符串吗?我怎么会错过
.value
的结尾?!+1谢谢你的帮助!!我错过了这部分…
电子邮件
没有定义
var atpos=email.indexOf("@").value;
var dotpos=email.lastIndexOf(".").value;