Javascript jQuery不适用于IE11,但适用于Chrome
我对jQuery有问题。当我在Chrome中上传图像时,它成功地执行了AJAX,并且我能够用响应数据更新页面。但在IE11和Firefox中,情况并非如此。守则:Javascript jQuery不适用于IE11,但适用于Chrome,javascript,jquery,ajax,google-chrome,Javascript,Jquery,Ajax,Google Chrome,我对jQuery有问题。当我在Chrome中上传图像时,它成功地执行了AJAX,并且我能够用响应数据更新页面。但在IE11和Firefox中,情况并非如此。守则: $(".newfoto").on('submit', (function(e) { $("#mailresult").html('<img src="themes/standart/iconss/spin1.gif" alt="loading..." /><p>Please, wait...</p
$(".newfoto").on('submit', (function(e) {
$("#mailresult").html('<img src="themes/standart/iconss/spin1.gif" alt="loading..." /><p>Please, wait...</p>');
e.preventDefault();
$.ajax({
url: "dataok.php?act=foto",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData: false,
success: function(data) {
$("#mailresult").html(data);
setTimeout(function() {
$("#mailresult").empty();
}, 2000);
var imgTag = '<img src="image.php?imgid=' + escape($('.myphoto').attr('id')) + '" />';
$('.myphoto').html(imgTag);
},
error: function() {}
});
}));
$(“.newfoto”)。关于('submit',(函数(e){
$(“#mailresult”).html(“请稍等……”);
e、 预防默认值();
$.ajax({
url:“dataok.php?act=foto”,
类型:“POST”,
数据:新表单数据(本),
contentType:false,
cache:false,
processData:false,
成功:功能(数据){
$(“#mailresult”).html(数据);
setTimeout(函数(){
$(“#mailresult”).empty();
}, 2000);
var imgTag=“”;
$('.myphoto').html(imgTag);
},
错误:函数(){}
});
}));
防止表单提交和重新加载页面的正确方法是使用返回false提交功能结束时的代码>。这也将替换e.preventDefault()代码>在您的代码中
此外,并非所有浏览器都支持FormData
。看见您可能需要检测并解决此问题
$(".newfoto").on('submit', function(e) {
$("#mailresult").html('<img src="themes/standart/iconss/spin1.gif" alt="loading..." /><p>Please, wait...</p>');
$.ajax({
url: "dataok.php?act=foto",
type: "POST",
data: (typeof FormData === 'function') ? new FormData(this) : $(this).serialize(),
contentType: false,
cache: false,
processData: false,
success: function(data) {
// success
},
error: function(jqXHR, status, error) {
console.log(error);
}
});
return false;
});
$(“.newfoto”)。关于('submit',函数(e){
$(“#mailresult”).html(“请稍等……”);
$.ajax({
url:“dataok.php?act=foto”,
类型:“POST”,
数据:(typeof FormData==='function')?新的FormData(this):$(this).serialize(),
contentType:false,
cache:false,
processData:false,
成功:功能(数据){
//成功
},
错误:函数(jqXHR、状态、错误){
console.log(错误);
}
});
返回false;
});
请适当设置代码格式,使其可读。您需要适当的缩进和删除双间距。@jfriend00哪个双间距?我不明白。很抱歉,您问题中的代码几乎每行代码之间都有一个空行。@jfriend00我编辑了代码。你是说这个吗?是的,删除了所有多余的空行。正如我在第一篇评论中所说,请添加适当的缩进。如果你不知道我的意思,那么把你的代码粘贴到这里:然后按下美化按钮$('.myphoto').html(imgTag);//问题就在这些方面。也许我可以改变它,但如何改变呢?