2014-09-02 109 views
-1

嘗試驗證html表單,以便一旦填寫完所有字段並輸入有效的電子郵件地址,就會創建一個模擬郵件,其中包含表單中的詳細信息。它僅在目前第一次工作,我希望它始終檢查第一個和最後一個名稱字段不是空的。使用javascript循環顯示HTML表單

目前代碼:

function validate_form(thisform){ 
     with (thisform){ 
     if ((validate_required(firstname,lastname,email,"All fields must be filled out!")==false) || (validate_email(email,"Not a valid e-mail address!")==false)){ 
      firstname.focus(); 
      lastname.focus(); 
      email.focus(); 
      return false; 
     } 
      return true;   
     } 
     } 

這裏是我的表

<form name="registration" action="mailto:[email protected]?subject='example'" onsubmit="return validate_form(this)" method="post" enctype="text/plain"> 
First Name: <input type="text" name="firstname"> 
Last Name: <input type="text" name="lastname"> 
Email : <input type="text" name ="email"> 
<input type= submit value="Send email" onclick="return validateForm();">&nbsp;&nbsp;&nbsp; 
<input type="reset" value="Reset"> 
</form> 

我已刪除了部分語法,閱讀形式的代碼

+0

當你說,它只能在第一時間,會發生什麼,第二次?任何控制檯錯誤? – Ozzy 2014-09-02 09:12:06

+0

如果電子郵件的輸入格式正確,則會提交第二次,如果沒有任何內容輸入姓或名字段,仍然會提交。 @Ozzy – 2014-09-02 09:14:27

+0

聽起來像你正在使用全局變量來檢查表單是否已驗證? – Ozzy 2014-09-02 09:15:45

回答

0

我創建了一個JSFiddle和只幾乎沒有改變它你的驗證工作 - 主要是要刪除return validateForm()input type=submit

http://jsfiddle.net/a34z195t/

<script> 
function validate_form(thisform) { 
    with(thisform) { 
     if ((validate_required(firstname, lastname, email, "All fields must be filled out!") == false) || (validate_email(email, "Not a valid e-mail address!") == false)) { 
      firstname.focus(); 
      lastname.focus(); 
      email.focus(); 
      return false; 
     } 
     return true; 
    } 
} 

function validate_required(field, field2, field3, alerttxt) { 
    with(field, field2, field3) { 
     if (value == null || value == "") { 
      alert(alerttxt); 
      return false; 
     } else { 
      return true; 
     } 
    } 
} 
</script> 
<form name="registration" action="mailto:[email protected]?subject='example'" onsubmit="return validate_form(this)" method="post">First Name: 
    <input type="text" name="firstname" /> 
    <br />Last Name: 
    <input type="text" name="lastname" /> 
    <br />Email : 
    <input type="text" name="email" /> 
    <br /> 
    <input type="submit" value="Send email" />&nbsp;&nbsp;&nbsp; 
    <input type="reset" value="Reset" /> 
</form>