0

基本的な JavaScript 電子メール検証機能を使用しており、条件が満たされた場合に jQuery を使用してフォームを送信しようとしています。ただし、submit()電子メールの検証が満たされているため、関数は実行されていないようです。

HTML

<form id="profile" action="" method="post">
    <input type="text" id="email">\
    <span class="error" id="email_err">Email address not valid.</span>
    //Other Form data
</form>
<div id="form-submit">Submit</div>

jQuery/Javascript

function IsEmail(email) {
    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return regex.test(email);
}

jQuery(document).ready(function($){

    $('#form-submit').click(function(){
        var email = $('#email').val();
        if(!IsEmail(email)){
            $('#email_err').show();
            $('#email').focus();
        }else{
            $('#profile').submit();
        }
    });
}

今私がやりたいのは、電子メールの検証をキャッチすることだけです。実際のフォーム送信とデータ書き込み データを書き込むための PHP が現在のページ ( action="") にあるように設定したので処理したいと思います。もともとは実際のフォーム送信ボタンでしたが、ページを更新せずにメールを検証したかったのです。

submit()私が読んでいるのはフォーム送信の単なるリスナーのように見えますが、実際にはフォーム自体を送信していないように見えるため、関数の理解は的外れかもしれません。これは正しいですか、それとも私がどこかに問題を抱えているだけですか?

4

1 に答える 1