2017-09-15 11 views
1

jQueryのフォーム検証作業中です。私の検証はすべて正常に動作しているようです。jQueryフォーム検証 - エラーをクリアしていない正解投稿

See JSFiddle here.

あなたはデータなしでフォームを送信する場合は、正しいエラーのすべてが表示されます。

フィールドの1つを修正すると、そのフィールドのエラーメッセージがクリアされません。

私のロジックにはおそらく間違いがあると思いますが、検証をもう一度やり直す簡単な方法があるかどうかは確かです。

jQueryで送信するためのコードはこちらです。最初の4つの検証関数は、エラーをチェックし、エラーがあればエラーを表示することです。何らかのエラーがあった場合、フォームは送信できません。エラーがなければ、警告が表示され、提出が許可されます。最初のif文がエラーを検出した後に問題があることがわかります。エラーが修正されているかどうかを確認し、そのエラーをクリアする方法はありません。だから、私はこれでどこに行くのか困っている - それはループのほうが良いだろうか?

// 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

ああ...うん。ありがとう! –

関連する問題