Jquery 为什么我的文件输入会成倍增加并发送相同的图像两次?
因此,我使用这个ajax脚本来显示管理员发送给客户端的图像,但我的问题是,每次管理员上传新图像时,脚本都会加倍并发送图像两次,例如,如果管理员上传第一个图像,它会显示一个图像,管理员会添加一个新图像您每次都在添加更改事件处理程序点击btn文件输入。您应该只添加此事件处理程序一次,除非您有特定的理由将事件处理程序添加到另一个事件处理程序中,否则您应该将其移到外部Jquery 为什么我的文件输入会成倍增加并发送相同的图像两次?,jquery,django,ajax,Jquery,Django,Ajax,因此,我使用这个ajax脚本来显示管理员发送给客户端的图像,但我的问题是,每次管理员上传新图像时,脚本都会加倍并发送图像两次,例如,如果管理员上传第一个图像,它会显示一个图像,管理员会添加一个新图像您每次都在添加更改事件处理程序点击btn文件输入。您应该只添加此事件处理程序一次,除非您有特定的理由将事件处理程序添加到另一个事件处理程序中,否则您应该将其移到外部 $("#btn-file-input").on("click",function(){
$("#btn-file-input").on("click",function(){
$("#file-input").trigger("click");
});
$('#file-input').change(function () {
var value = $(this).val();
var form = new FormData();
var dat = $('#file-input').prop('files')[0];
console.log(dat)
form.append("image-user",dat);
form.append("id_user",id_user);
for(var q of form.entries()){
console.log(q[0]+ ', ' + q[1]);
}
$.ajax({
processData: false,
contentType: false,
async: false,
cache: false,
type: "POST",
url: "updateimage",
data: form,
success: function(result) {
var result_json = JSON.parse(result)
console.log(result_json)
}
});
});
每次单击
#btn file input
时,您都在添加更改事件处理程序。您应该只添加此事件处理程序一次,除非您有特定的理由将事件处理程序添加到另一个事件处理程序中,否则您应该将其移到外部
$("#btn-file-input").on("click",function(){
$("#file-input").trigger("click");
});
$('#file-input').change(function () {
var value = $(this).val();
var form = new FormData();
var dat = $('#file-input').prop('files')[0];
console.log(dat)
form.append("image-user",dat);
form.append("id_user",id_user);
for(var q of form.entries()){
console.log(q[0]+ ', ' + q[1]);
}
$.ajax({
processData: false,
contentType: false,
async: false,
cache: false,
type: "POST",
url: "updateimage",
data: form,
success: function(result) {
var result_json = JSON.parse(result)
console.log(result_json)
}
});
});
哦,我首先明白了,如果输入是触发器,我需要将事件更改放在同一个处理程序中,以获取输入的val,谢谢,伙计,这真的很有帮助!!。哦,我首先明白了,如果输入是触发器,我需要将事件更改放在同一个处理程序中,以获取输入的val,谢谢,伙计,这真的很有帮助!!。
$("#btn-file-input").on("click",function(){
$("#file-input").trigger("click");
});
$('#file-input').change(function () {
var value = $(this).val();
var form = new FormData();
var dat = $('#file-input').prop('files')[0];
console.log(dat)
form.append("image-user",dat);
form.append("id_user",id_user);
for(var q of form.entries()){
console.log(q[0]+ ', ' + q[1]);
}
$.ajax({
processData: false,
contentType: false,
async: false,
cache: false,
type: "POST",
url: "updateimage",
data: form,
success: function(result) {
var result_json = JSON.parse(result)
console.log(result_json)
}
});
});