验证表格一直运行良好,但我现在尝试在代码中添加电子邮件验证,现在没有任何内容可以验证,表单提交时没有任何弹出框错误框。
这是当前的代码:
<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>
答案 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的回答,我们对此非常互补; - )