2010-11-25 4 views
3

名前が見つかったかどうかを確認するためにこのajaxチェックを行います。データが返されたときにうまく動作しますが、nofoundを返すときには再びトリガーしてトリガーする必要があります。jQuery ajaxフォームをチェックして送信してください。常にajaxがnofoundを返すときに2回提出する必要があります

誰にでもこれに関する提案や改善策がありますか?

$('#formletter').submit(function() { 
    var name = $('#name').val(); 

    if ($.formLoading != false) { 
     $.ajax({ 
     type: 'POST', 
     url: "submit_ajax_contents.php", 
     data: "namecheck="+name, 
     success: function(data) { 
      if(data == 'nofound'){ 
      $.formLoading = false; 
      $('#formletter').submit(); 
      }else{ 
      alert('found'); 
      $.formLoading = true; 
      } 
     } 
     }); 
    return false; 
    } else { 
    return true; 
    } 

    }); 

}); 

多くの感謝:)

答えて

1

あなたは非非同期AJAX呼び出しを行いたい場合があります(私はこのコードをテストしていない)

$('#formletter').submit(function(event) { 
    var name = $('#name').val(); 
    var found = false; 
    $.ajax({ 
     async: false, 
     type: 'POST', 
     url: "submit_ajax_contents.php", 
     data: "namecheck="+name, 
     success: function(data) { 
      if(data == 'found') 
       found = true; 
     } 
    }); 
    if (found) 
     event.preventDefault(); 
}); 
+0

AJAX呼び出しが失敗した場合ことに注意してください、 'found'は' false'とみなします(つまり、値は変更されません)。 – cambraca

+0

そして、もちろん、名前チェックが行われていることをユーザーに知らせるべきであるので、ユーザーはフリークアウトしません何秒も過ぎて何も起こっていないようだ。 – cambraca

+0

はい、それは仕事をしてくれたようです、ありがとうございました:) – Joannes

関連する問題