Плагин jQuery Form плохо реагирует на FireFox - PullRequest
6 голосов
/ 29 февраля 2012

Ссылаясь на плагин: http://malsup.com/jquery/form/#getting-started

Недавно я пытался обновить версию v2.28 до версии 2.96, но не смог, так как при попытке использовать FireFox для отправки формы, загруженной с помощью другого вызова Ajax, появилась новая ошибка.

У меня есть два вида форм: те, которые я загружаю без вызова Ajax, и другие, которые я загружаю с сервера. Я использую ajaxForm () для привязки:

function bindAjaxResponse() {
    // Bind for Ajax POST
    var options = {
            delegation: true,
           //target:        '#output1',   // target element(s) to be updated with server response
            beforeSubmit:  showRequest,  // pre-submit callback
            success:       showResponse  // post-submit callback
        };

    $('#my_form').ajaxForm(options);   
}

Как в Chrome, так и в IE код работает хорошо, и оба метода showRequest и showResponse вызываются и заполняются соответствующими параметрами. В последнем FireFox (v10.0.2) вызывается только showRequest, но никогда не вызывается showResponse. FireBug ясно показывает, что никакая подача не делается вообще. В окне консоли нет ни сообщений об ошибках, ни предупреждений. Я действительно понятия не имею, что может вызвать такую ​​разницу в поведении.

Обратите внимание, что весь этот код прекрасно работал на всех браузерах в более старой версии v2.28

Любой

Вопрос в кросс-посте https://forum.jquery.com/topic/jquery-form-plugin-not-responding-well-with-firefox

Спасибо

Ответы [ 2 ]

6 голосов
/ 08 марта 2012

У меня тоже были проблемы с формами jQuery, поэтому я просто вызываю $ .ajax напрямую:

function bindAjaxResponse() {
    // Bind for Ajax POST

    $('#my_form').submit( function() {
        var datastream = $(this).serialize();

        console.log('Submitting form');

        $.ajax({
            type: 'post',
            url: $(this).form.attr('action'),
            data: datastream,
            timeout: 2000,

            error: function() {
                console.log("Failed to submit");
            },  
            success: function(data) {
                console.log('Successfully submitted form');
                console.log(data);
            }
        });

        return false;
    });
}
4 голосов
/ 09 марта 2012

Кажется, была ошибка в v2.96, и, поскольку я теперь обновился до v3.02, она решена.

...