onsubmit 검사 폼 을 분석 할 때 ajax 의 return false 를 이용 하여 잘못된 문 제 를 해결 합 니 다.
1825 단어 onsubmitajaxreturn false
/**
*
**/
function onSubmit(){
if($('#name').val().length<2){
alert(" ");
return false;
}
var t = new Date().getTime();
$.ajax({
type: "POST",
url: "/users/checkrepeat/",
data: "name=" + $('#name').val() + "&time=" + t,
success:function(res){
if(res == 'exists'){
alert(" , .");
return false;
}
}
});
}
문제 원인:1.ajax 시 return false 의 function 과 onsubmit()는 같은 함수 가 아 닙 니 다.2.ajax 가 실 행 될 때 async 의 기본 설정 값 은 true 입 니 다.이 경우 비동기 방식 입 니 다.ajax 가 요청 을 보 낸 후에 server 단 이 돌아 오 기 를 기다 리 는 과정 에서 프론트 데스크 는 ajax 블록 뒤의 스 크 립 트 를 계속 실행 하고 server 단 이 정확 한 결 과 를 되 돌려 야 success 를 실행 할 수 있 습 니 다.즉,이때 실 행 된 것 은 두 스 레 드 입 니 다.ajax 블록 에서 요청 한 스 레 드 와 ajax 블록 뒤의 스 크 립 트(다른 스 레 드)를 보 냅 니 다.수 정 된 코드:
/**
*
**/
function onSubmit(){
if($('#name').val().length<2){
alert(" ");
return false;
}
var flag = true;
var t = new Date().getTime();
$.ajax({
type: "POST",
async:false, //
cache:false,
url: "/users/checkrepeat/",
data: "name=" + $('#name').val() + "&time=" + t,
success:function(res){
if(res == 'exists'){
alert(" , .");
flag = false;
}
}
});
if(!flag)
return false;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javascript에서 XHR/fetch 메서드를 재정의하는 방법은 무엇입니까?XHR에 후크를 추가하거나 요청을 가져오기 위해 javascript의 Proxy 객체를 사용할 것입니다. 그리고 모든 요청에 데이터를 보내거나 모든 응답 데이터를 필터링하려는 시나리오에 직면합니다. API 호출에 후...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.