Jquery -在ajax和FormData之后单击事件停止工作

Jquery - Click event stops working after ajax and FormData

本文关键字:之后 单击 事件 停止工作 FormData ajax Jquery      更新时间:2023-09-26

我使用FomdData上传图像到服务器。该功能工作正常,但在第一次上传后,我无法执行第二次。似乎一个点击事件被阻止了。#upload-image在加载文档时存在于页面上,并且在成功后不会以任何方式更改。这里的问题是什么?

编辑

点击事件正在工作,但ajax在第一次上传后停止工作。

$("#product-sell-search").on("click", '#upload-image', function() {
        var
            url      = $(this).attr('href'),
            fileData = $("#ocrFile").prop("files")[0],
            formData = new FormData();
        if(!fileData){
            alert('Please Sellect File');
            return false;
        }
        formData.append('ocrFile', fileData);
        // Added in order for server to recognize as post request
        formData.append("post", "post");
        $.ajax({
            url: url,
            dataType: 'script',
            cache: false,
            contentType: false,
            processData: false,
            data: formData,
            type: 'POST',
            success:function(data, textStatus, jqXHR){
                $.when($('#product-sell-search')
                        .find('input[name=ProductsSearch]')
                        .val(data.replace(/['"]+/g, '')))
                .then(function(){
                    $('#product-sell-search').trigger('submit');
                });
            },
            error: function(jqXHR, textStatus, errorThrown){
                alert('There was an error. Please try again');
            }
       });
        return false;
    });

为什么返回false是你的函数是成功的,那么它应该返回true

我设法使脚本正常工作。我删除了dataType: 'script'行,现在我可以在单个页面加载中进行多次上传。