2015-10-26 51 views
1

驗證表格一直工作正常,但我現在已經嘗試添加電子郵件驗證的代碼,現在沒有任何驗證,表單提交沒有任何彈出錯誤框。否則IF聲明不驗證信息

下面是當前的代碼:

<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

相當互補是'絕對email'一個字符串? – AdamJeffers

回答

0

我沒有看到以下之前電子郵件的任何聲明:

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

也許你的意思e,不email

而且刪除後.value來電indexof(),看到@ charlieftl的答案,我們對這個;-)

+0

請參閱下面的@charlietfl答案... – AdamJeffers

+2

我錯過了這個部分...'email' is undefined – charlietfl

+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

+0

我怎麼錯過最後的'.value'? +1 – AdamJeffers

+0

感謝您的幫助! –