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