-1

わかりました、テストと実践を通じて jquery を学ぶために最善を尽くしています。Validate Forms 以外にもいくつかの完璧なライブラリがあることは知っていますが、少なくとも今のところは独学で学びたいと思っています。このリンクにフォームがあり、フォームの検証でエラーが発生します。ご覧のとおり、Email と Username の 2 つの単純な入力があります。ここで私がやろうとしているのは、ここに画像の説明を入力最初のステップで入力全体をチェックすることです。空の入力があるかどうかを確認することです。空の入力がある場合、jquery はエラー メッセージを生成します (現在実行中です)。 )ここに画像の説明を入力次に、すべての入力をチェックするためにフィールドごとにいくつかのバリデーターを追加したいのですが、ここで問題が発生しています
まず第一に、コードは実際には入力を検証しておらず、エラーメッセージを他の入力にも追加しています! 最後に、正しい入力を入力した後でも、フォームは送信されません!

ここに私が持っているコードがあります:

$(document).ready(function() {  
var email = $('form #email').val();
$('#myform').submit(function() {
        var abort = false;
        $("div.err").remove();
        $(':input[required]').each(function() {
            if ($(this).val()==='') {
                $(this).parent().after('<div class="err">This is a Requierd Field</div>');
                abort = true;
            }
            else{
                if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
                $(this).parent().after('<div class="err">Email Not Match</div>');
                abort = true;                                         
               }
            }
        }); 
        if (abort) { return false; } else { return true; 
        }
    })
});
4

1 に答える 1

0

「Email Not Match」の問題を修正するには、これを変更します -

else{
  if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
    $(this).parent().after('<div class="err">Email Not Match</div>');
    abort = true;                                         
  }
}

これに -

else{
  if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
    $(email).parent().after('<div class="err">Email Not Match</div>');
    abort = true;                                         
  }
}
于 2013-11-12T05:25:43.837 に答える