2017-09-20 8 views
0

フォームの検証が行われているサーバー側:しかしカスタムjQueryの私はそれのバルクとしての基本的な検証チェックを書いた

e.preventDefault(); 

     var error = false; 
     var name = $("input[name='name']").val(); 
     var email = $("input[name='email']").val(); 

     if(name.length == 0){ 
     var error = true; 
     var name = $("input[name='name']").addClass("error"); 
     }else{ 
     $("input[name='name']").removeClass("error"); 
     } 

     if(email.length == 0 || email.indexOf('@') == '-1'){ 
     var error = true; 
     var email = $("input[name='email']").addClass("error"); 
     }else{ 
     $("input[name='email']").removeClass("error"); 
     } 

私は両方のフィールド空白だけ残せば電子メールフィールドは添付されたクラスを取得します - それだけでなく電子メールが表示されている間はフォームが送信されます - 名前フィールドは空白のままにされていないのはなぜですか?

+2

、 '==「を-1''' == -1'でなければなりません。 – Utkanos

+0

また、if/else条件に変数を再宣言する必要はありません。 'error'の値を更新したい場合は、' var error = true'の代わりに 'error = true'を使います。 '$(" input [name = 'name'] ")。addClass(" error ")'を使ってクラスを追加したい場合は、変数にjQueryオブジェクトを格納する必要はありません。 – Terry

+0

ポインタに感謝しますが、どちらの問題も解決していませんか? – user4349555

答えて

0

私は別の条件をメールの後に行います。 !のような 何か: - 数値-1に対するテストではなく、文字列手始めに

if (email.length == 0 && name.length == 0) { 
    $("input[name='email']").addClass("error"); 
    $("input[name='name']").addClass("error"); 
} 
関連する問題