2017-09-15 134 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

啊......烨说没有的伎俩。谢谢!!! –