/**
* フォーム送信の確認
**/
関数onSubmit() {
if($('#name').val().length<2){
alert("名前は漢字 2 文字以上である必要があります");
return false ;
}
var t = new Date().getTime();
$.ajax({
type: "POST",
url: "/users/checkrepeat/",
データ: "name=" $('#name').val() "&time=" t,
success:function(res){
if(res == 'exists'){
alert(" 名前はすでに存在します。変更してください。");
; 理由:
1. ajax 中に false を返す関数は、onsubmit() と同じ関数ではありません。 ;
2. ajax が実行されるとき、async のデフォルト設定値は true です。この場合、非同期モードは、ajax がリクエストを送信した後、サーバーが戻るのを待ちながら、フロントデスクが実行を継続することを意味します。 ajax ブロックの背後にあるスクリプトは、サーバーが正しい結果を返すまで実行されません。つまり、この時点で 2 つのスレッド (ajax ブロックがリクエストを行った後に 1 つのスレッドが実行され、ajax ブロックの後にスクリプトが実行されます) が実行されます。 (別のスレッド)。
変更コード:
コードをコピー
コードは次のとおりです:
タイプ:" post "、
async:false、//同期メソッドを設定:false、
url:"/ users/checkrepeat/",
データ: "name= " $('#name').val() "&time=" t,
success:function(res){
if(res == 'exists'){
alert("名前はすでに存在します。変更してください。");
FLAG = FALSE;
}
}); 🎜> false を返します。