/**
* 양식 제출 확인
**/
함수 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,
성공:function(res){
if(res == 'exists'){
Alert(" 이미 존재하는 이름입니다. 수정해주세요.");
; 이유:
1. ajax 중에 false를 반환하는 함수는 onsubmit()과 동일한 함수가 아닙니다. ;
2. ajax가 실행될 때 async의 기본 설정 값은 true입니다. 이 경우 비동기 모드는 ajax가 요청을 보낸 후 서버가 반환되기를 기다리는 동안 프런트 데스크가 계속해서 실행된다는 것을 의미합니다. ajax 블록 뒤에 있는 스크립트는 서버가 올바른 결과를 반환할 때까지 실행되지 않습니다. 즉, 이 스레드는 두 개의 스레드로, ajax 블록 뒤의 스레드와 ajax 블록 뒤의 스크립트입니다. (다른 스레드).
수정된 코드:
코드 복사
코드는 다음과 같습니다.
}
var Flag = TRUE;
var T = New date (). Gettime ();
$ . ajax ($ .ajax ( {
유형: "POST",
async:false, // 동기화 방법 설정
캐시:false,
url: "/users/checkrepeat/",
data: "name= " $('#name').val() "&time=" t,
성공:function(res){
if(res == 'exists'){
Alert("이름이 이미 존재합니다. 수정하세요.");
FLAG = FALSE;
}
})
if (! Flag)
return false;