Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么我的文件输入会成倍增加并发送相同的图像两次?_Jquery_Django_Ajax - Fatal编程技术网

Jquery 为什么我的文件输入会成倍增加并发送相同的图像两次?

Jquery 为什么我的文件输入会成倍增加并发送相同的图像两次?,jquery,django,ajax,Jquery,Django,Ajax,因此,我使用这个ajax脚本来显示管理员发送给客户端的图像,但我的问题是,每次管理员上传新图像时,脚本都会加倍并发送图像两次,例如,如果管理员上传第一个图像,它会显示一个图像,管理员会添加一个新图像您每次都在添加更改事件处理程序点击btn文件输入。您应该只添加此事件处理程序一次,除非您有特定的理由将事件处理程序添加到另一个事件处理程序中,否则您应该将其移到外部 $("#btn-file-input").on("click",function(){

因此,我使用这个ajax脚本来显示管理员发送给客户端的图像,但我的问题是,每次管理员上传新图像时,脚本都会加倍并发送图像两次,例如,如果管理员上传第一个图像,它会显示一个图像,管理员会添加一个新图像您每次都在添加更改事件处理程序点击btn文件输入。您应该只添加此事件处理程序一次,除非您有特定的理由将事件处理程序添加到另一个事件处理程序中,否则您应该将其移到外部

$("#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)
        }
    });
});