Приостановить отправку формы для проверки

У меня есть форма, которая загружает файл в iframe. Я хотел бы отложить его отправку, пока я не проверю, действительно ли он с помощью ajax. Как я могу это сделать ? Мой код приостанавливает отправку и возвращает результат проверки (в настоящее время это просто фиктивная функция, которая возвращает «результат»: «истина»), но тогда действие «отправить» не выполняется. Также нормально ли, что для отображения данных ответа после получения статуса ответа 200 требуется ~ 2 секунды?

Вот мой html:


Submit

{% render_upload_data upload_data %} {{ form }}

Js:

$(function() {

    $('#file_upload_submit').click(function(e){
        e.preventDefault();
        var fileUploadForm = document.getElementById('file_upload_form');

        $.ajax({
            type: "POST",
            url: '/artifact/upload/check-form/',
            data: 'foo=bar',
            dataType: "json",
            success: function(data){
                if(data['result'] == "true"){
                    $("#message").show();
                    $("#message").fadeIn(400).html(''+data["message"]+'');
                    setTimeout(function(){
                        $("#message").fadeOut("slow", function () {
                            $("#message").hide();
                        });
                    }, 1500);
                     $('#file_upload_form').attr('target','upload_target').submit(function(){
                        alert('Handler for .submit() called.');
                        return false;
                    });
                }
                else{
                    $("#message").show();
                    $("#message").fadeIn(400).html(''+data["message"]+'');
                    setTimeout(function(){
                        $("#message").fadeOut("slow", function () {
                            $("#message").hide();
                        });
                    }, 1500);                    
                    return false;
                }
            }
        });
        return false;        
    });

});    


и ссылка: http://ntt.vipserv.org/artifact/


РЕДАКТИРОВАТЬ

С помощью приведенного ниже кода я могу выполнить проверку, а затем, когда результат будет положительным, будет отправлена ​​форма. Теперь, если я жестко запрограммировал цель для формы, мое предупреждение не отображается, и я почти уверен, что загрузка не выполняется (к сожалению, список загрузок обновляется каждые 8 ​​часов, я буду знать, сработало ли это через какое-то время). Если цель не указана, файл загружается с перенаправлением, поэтому весь прослушиватель событий 'submit' опускается.


html:


Submit

{% render_upload_data upload_data %} {{ form }}

6
задан mastodon 17 November 2010 в 23:25
поделиться