※ ChatGPTを利用し、要約された質問です(原文:jQueryを使用して以下のようなコードを作成しましたが、submit)
jQueryを使用してsubmitがreturn falseされなくて困っています
このQ&Aのポイント
ajax通信が終了しないうちに判断されているためだと思われるのですが、うまくsubmitされないようにする方法はあるでしょうか?
isUniqueMail関数を作成し、入力内容のチェックと既に利用されているメールアドレスのチェックを行っています。
isUniqueMail関数の実行結果に応じて、エラーメッセージを表示しています。
jQueryを使用して以下のようなコードを作成しましたが、submit
jQueryを使用して以下のようなコードを作成しましたが、submitがreturn falseされなくて困っています。
ajax通信が終了しないうちに「if($('span.error').size() > 0)」が判断されているためだと思われるのですが、うまくsubmitされないようにする方法はあるでしょうか?
ajaxCompleteとか使って考えてもみましたが。どうしてもできません。どなたかご教示お願い致します。
$(function(){
$('#registerInputMailAddress').submit(function(){
isUniqueMail();
if($('span.error').size() > 0){
return false;
}
})
});
function isUniqueMail(){
mailError = '';
if($('#uniqueMail').val() == ''){
mailError += '入力してください。<br />';
}
if($('#uniqueMail').val().length > 50){
mailError += '50文字以内で入力してください。<br />';
}
if(isInvalid($('#uniqueMail').val())){
mailError += '無効な文字が含まれています。<br />';
}
if($('#uniqueMail').val() != '' && !$('#uniqueMail').val().match(/.+@.+\..+/g)){
mailError += '形式が間違っています。<br />';
}
$.post(
'/register',
{mail: $('#uniqueMail').val()},
function(rs){
if(rs == 'not unique'){
mailError += '既に会員登録に利用されています。<br />';
}
if(mailError == ''){
$('#mailError').html('<span class="ok">ok</span>');
}else{
$('#mailError').html('<span class="error">'+mailError+'</span>');
}
}
);
}
お礼
回答ありがとうございます。 jQuery.ajaxで実装することにします。