我有一个网页,它有一个上传框并上传一张图片。jquery 如下。用户浏览一个文件并单击一个名为 btn_AddImage 的按钮,该文件被上传。问题是代码仅在我在 firebug 中的“if (xhr.readyState == 4)”上放置断点并显示“btn_ShowImage”元素时才有效。如果我不设置断点,文件将被上传,但页面仍会提示错误,并且“btn_ShowImage”元素仍将被隐藏。
$(document).ready(function () {
$('#btn_AddImage').live('click', AjaxFileUpload);
});
function AjaxFileUpload() {
var fileInput = document.getElementById("image_Upload");
var file = fileInput.files[0];
var fd = new FormData();
fd.append("files", file);
var xhr = new XMLHttpRequest();
xhr.open("POST", 'ImageFileUploader.ashx');
xhr.send(fd);
if (xhr.readyState == 4) {
$('#btn_ShowImage').show();
}
else {
alert('error');
}
}
感谢您的回复。我已经更正了我的代码并且它正在工作。更正后的代码如下
$(document).ready(function () {
$('#btn_AddImage').live('click', AjaxFileUpload);
});
function AjaxFileUpload() {
var fileInput = document.getElementById("image_Upload");
var file = fileInput.files[0];
var fd = new FormData();
fd.append("files", file);
var xhr = new XMLHttpRequest();
xhr.open("POST", 'ImageFileUploader.ashx');
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
$('#btn_ShowImage').show();
}
else if (uploadResult == 'success')
alert('error');
};
xhr.send(fd);
}