Jquery - событие Click перестает работать после ajax и FormData

Я использую FomdData для загрузки изображения на сервер. Функция работает нормально, но после первой загрузки я не могу выполнить вторую. Кажется, что событие клика заблокировано. #upload-image существует на странице при загрузке документа и никак не изменяется после успешной загрузки. В чем проблема?

ИЗМЕНИТЬ

Событие Click работает, но 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;
    });

person Sasha    schedule 13.10.2015    source источник
comment
Попробуйте отключить и снова включить обработчик кликов, например: $("#product-sell-search").off('click').on("click"....   -  person Yang    schedule 13.10.2015
comment
Все еще не работает. Кажется, что событие клика работает правильно, и проблема связана с ajax.   -  person Sasha    schedule 13.10.2015
comment
вы делаете еще один вызов (отправляете) при успешном вызове ajax, это может быть причиной?   -  person Burak Karakuş    schedule 13.10.2015


Ответы (2)


Почему retrun false есть, если ваша функция выполнена успешно, тогда она должна вернуть true.

person Varun Vasishtha    schedule 13.10.2015

Мне удалось заставить скрипт работать правильно. Я удалил строку dataType: 'script' и теперь могу выполнять несколько загрузок на одной странице.

person Sasha    schedule 13.10.2015