ELSE IF声明未验证信息

时间:2015-10-26 21:57:09

标签: javascript if-statement

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

这是当前的代码:

<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>

2 个答案:

答案 0 :(得分:2)

由于以下错误,表单可能会提交

变化:

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

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

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

@fpierrat email注意到的应该是e

答案 1 :(得分:0)

在下列内容之前,我没有看到任何电子邮件声明:

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

也许你的意思是e,而不是email

同样在.value来电后删除indexof(),请参阅@ charlieftl的回答,我们对此非常互补; - )