非常に簡単ですが、本来の方法では機能しません。
$(function(){
(function(){
/**
* @return boolean Depending on success
*/
function saveOnServer(data){
var result = false;
$.ajax({
url : "/post/write.ajax",
data : data,
success : function(response){
if (response == "1"){
alert('Response is 1. OK');
result = true;
}
}
});
return result;
}
$("#save").click(function(e){
e.preventDefault();
// This inserts some stuff (on the server), but always returns FALSE
if ( saveOnServer($("form").serialize())) ){
alert('1'); // This expected to be alerted
} else {
alert('0'); // <- But... This will be alerted
}
});
})($);
});
問題は、response
var が常に を返し1
、アラートResponse is 1. OK
も出すことです。しかし...
result
は常にFALSE
。なんで?