ajaxを介してフォームを検証するボタンクリックで読み込み中の画像を表示しようとしていますが、読み込み中の画像は少し遅れて表示されます(サーバーにアップロードすると、画像が表示されるまでに2秒以上かかります)。しかし、ボタンクリックイベントの瞬間にそれが欲しいです。私のコードを以下に示します。
$("#Save").click(function() {
// shows theloading image (here I am expecting the loading image, it never shows.)
$("#load_img").show();
// calls ajax for vaidation
lookUpValidation($("#item1"))
// calls ajax for vaidation
lookUpValidation($("#item2"))
})
function lookUpValidation(this_element,id) {
url = "/validate/lookupid/"+id,
lookUpValidationResult = false;
lookUpValidationData = false;
if(this_element.val()!="") {
$.ajax({
url : url,
type : "POST",
async : false,
data : {
"value" : this_element.val()
},
beforeSend : function(data) {
// shows theloading image
$("#load_img").show();
},
complete : function(data) {
if(data) {
var res = JSON.parse(data.responseText);
lookUpValidationData = res;
if(res.field) {
lookUpValidationResult = 1;
}
else
// not found
lookUpValidationResult = 2;
}
else {
// not found
lookUpValidationResult = 2;
}
}
});
}
else {
// null
lookUpValidationResult = 3;
}
return lookUpValidationResult;
}
HTML
<div class="k-loading-image" id="load_img" style="display:none;">
<div class="k-loading-color">
</div>
</div>