2017-09-15 57 views
1

jQuery中的表單驗證工作。我所有的驗證似乎都正常工作。jQuery的表單驗證 - 正確提交不清除錯誤

See JSFiddle here.

如果沒有數據提交表單,所有正確的錯誤出現。

如果修復領域之一,該字段的錯誤信息不明確。

我認爲這可能是錯誤的東西與我的邏輯,但不確定是否有一個簡單的方法,試圖再次檢查驗證?

我對提交的jQuery的代碼是在這裏。前四種驗證功能正在檢查錯誤並在出現錯誤時顯示錯誤。如果有任何錯誤,表單將被阻止提交。如果沒有錯誤,則顯示警報並允許提交。我知道問題在於,在那之後,如果語句發現錯誤 - 無法查看錯誤是否已修復並清除錯誤。所以我難以忍受這種情況 - 在一個循環中,它會更好嗎?

// On Form Submission Validate Form 
$("#contact_submit button").click(function(event){ 
    error_name = validateName(); 
    error_email = validateEmail(); 
    error_activity = validateActivities(); 
    isCreditIssue = validateCredit(); 
    event.preventDefault(); 

    var valid = true; 

    if ((error_name) || (error_email) || (error_activity) || (isCreditIssue)){ 
     console.log("errors"); 
     valid = false; 
    } else { 
     alert('GREAT! form completed'); 
     valid = true; 
    } 
    if (valid) { 
    return; 
    } 

回答

2

你忽略了hide報表時表單值在許多地方成爲有效。 (內validateZip)只是一個例子:

if ((!errorZip)||(zip!= 5)){ 
    $(".error_zip").show(); 
    errorZip = true; 
    console.log('zip issue'); 
} else { 
    errorZip = false; 
} 

你應該更換本:

if ((!errorZip)||(zip!= 5)){ 
    $(".error_zip").show(); 
    errorZip = true; 
    console.log('zip issue'); 
} else { 
    $(".error_zip").hide(); 
    errorZip = false; 
} 
+0

啊......燁說沒有的伎倆。謝謝!!! –