값을 확인하기 위해 양식을 제출할 때 몇 가지 AJAX 게시물을 수행하는 매우 복잡한 기능이 있습니다. POST에서 리턴 된 값에 따라 제출이 작동하거나 실패해야합니다. 전역 부울을 사용하여 함수 전체에서 true 또는 false로 설정 한 다음 부울이 'true'로 변경되었는지 끝에서 확인하고 'return false;'를 호출하면이 작업을 수행 할 수 있다고 생각했습니다.jQuery 포스트 콜백 조건에서 거짓 반환
그러나 이것은 실패합니다. 나는 그것을 읽었으며 AJAX 호출이 비동기 적이기 때문에 코드가 순차적으로 실행되지 않기 때문이라고 생각한다.
내 코드는 다음과 같다 : 나는 비슷한 jquery - return value from callback function (in post request) into the function its inside of?의 예를 발견하지만 난 틀림없이 좋은 아니에요 (I가해야 할 일의 맥락에서 주위에 내 머리를 얻기 위해 고군분투
$('.to-step-3').click(function(){
var shape = '';
blnError = false;
$.post('/base/RoomBuilder/GetRoomShape.aspx', function(data) {
if(data.substring(0,5) == 'Error'){
alert(data);
blnError = true;
}else{
shape = data;
$.post('/base/RoomBuilder/GetRoomDimensions.aspx', function(data2) {
if(data2.substring(0,5) == 'Error'){
alert(data2);
blnError = true;
}else{
var arrDims = data2.split('_');
var l = arrDims[0];
var w = arrDims[1];
var sl = arrDims[2];
var ll = arrDims[3];
var sw = arrDims[4];
var lw = arrDims[5];
var failMessage = 'Please enter all required dimensions to build your room';
switch(shape) {
case 'square':
if(!(notNullOrEmpty(l))){
alert(failMessage);
blnError = true;
}
break;
case'rectangle':
if(!(notNullOrEmpty(l)) || !(notNullOrEmpty(w))){
alert(failMessage);
blnError = true;
}
break;
case'lshaped':
if(!(notNullOrEmpty(sl)) || !(notNullOrEmpty(ll)) || !(notNullOrEmpty(sw)) || !(notNullOrEmpty(lw))){
alert(failMessage);
blnError = true;
}
break;
case'lshapedalt':
if(!(notNullOrEmpty(sl)) || !(notNullOrEmpty(ll)) || !(notNullOrEmpty(sw)) || !(notNullOrEmpty(lw))){
alert(failMessage);
blnError = true;
}
break;
}
}
});
}
});
if(blnError == true){
return false;
}else{
return true;
}
});
자바 스크립트에서!)
내가 길을 너무 오래 꼼짝 않고 바라 보았으니 아무도 올바른 방향으로 나를 가리 키지 못했을 까? 모두에게 감사드립니다.