변수에 값을 설정하는 데 문제가 있습니다. 내 코드는 아래와 같습니다.자바 스크립트 함수에서 변수 설정
function fpform(){
var response_new = '';
var password_reset = "";
var fpemail = $('#frgtpwd').val();
//var fpemail = document.getElementById('frgtpwd').value;
if (fpemail == ""){
$('span#fperror').text("insert your emal address");
//document.getElementById('fperror').innerHTML = "Insert your email address";
password_reset = 'no';
} else {
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (filter.test(fpemail)==false) {
$('span#fperror').text("Email address is not in valid format");
//document.getElementById('fperror').innerHTML = "Email address is not in valid format";
password_reset = 'no';
} else {
$("#loader").html('<img src="images/ajax-loader.gif" />');
$.post("forgot_password_process.php", {
email:fpemail
}, function(response){
response_new = response.trim();
}).success(function() {
if (response_new == 'yes'){
$("#fperror").html('<font color="green"><b>Your password has been reset now and emailed to you </b></font>');
$("#loader").empty();
password_reset = 'yes';
} else {
$("#loader").empty();
$("#fperror").html('<font color="black"><b> Email address was not found in database!</b></font>');
password_reset = 'no';
}
});
}
}
if (password_reset == "yes"){
alert(password_reset);
return true;
} else {
alert(password_reset);
return true;
}
}
마지막 조건은 password_reset 변수가 yes 또는 no로 설정되어 있는지 확인하고 그에 따라 true 또는 false를 반환합니다. 그러나 경고는 password_reset 변수의 빈 값을 표시합니다. password_reset 변수가 마지막에 도달하기 전에 할당되어야하므로이 문제는 해결할 수 없습니다. 누구든지 해결책을 제안 할 수 있습니까? 당신이 데이터를 경고 할 때 요청이 완료되지 않은 그 때문에 친절 감사
왜 함수에서 true/false를 반환합니까? 이 기능을 사용하려면 전체 기능을 동기식으로 만들어야합니다. 그렇지 않으면 AJAX 호출이 완료되기 훨씬 전에 반환됩니다. –