JQuery AJAX формы отправки - как обеспечить использование действия динамически загруженной формы - PullRequest
2 голосов
/ 30 апреля 2010

У меня проблема с динамически загружаемыми формами - вместо использования атрибута действия вновь загруженной формы мой код jquery все еще использует атрибут действия первой загруженной формы. У меня есть следующий код:

//generic ajax form handler - calls next page load on success
    $('input.next:not(#eligibility)').live("click", function(){
        $(".form_container form").validationEngine({
            ajaxSubmit: true,
            ajaxSubmitFile: $(this).attr('action'),
            success :  function() {
                var url = $('input.next').attr('rel');
                ajaxFormStage(url);
            },
            failure : function() {
            }
        });
    });

Но когда загружается следующая форма, приведенный выше код не получает новый атрибут действия. Я попытался добавить приведенный выше код к моему обратному вызову при успешной загрузке AJAX (показано ниже), но это не имеет никакого значения.

Кто-нибудь может помочь? Большое спасибо

function ajaxFormStage(url)
{

        var $data = $('#main_body #content');

        $.validationEngine.closePrompt('body'); //close any validation messages

        $data.fadeOut('fast', function(){
            $data.load(url, function(){
                $data.animate({
                    opacity: 'show'
                }, 'fast');
    ');


                //generic ajax form handler - calls next page load on success
                $('input.next:not(#eligibility)').live("click", function(){
                    $(".form_container form").validationEngine({
                        ajaxSubmit: true,
                        ajaxSubmitFile: $(this).attr('action'),
                        success :  function() {
                            var url = $('input.next').attr('rel');
                            ajaxFormStage(url);
                        },
                        failure : function() {
                        }
                    });
                });
            });
        });

1 Ответ

2 голосов
/ 30 апреля 2010

Я полагаю, что это происходит, потому что использование $(this) в этой строке

ajaxSubmitFile: $(this).attr('action')

вы всегда получаете действие первой формы.

Я думаю, что вам нужен еще один селектор, чтобы получить форму, ближайшую к нажатой клавише ввода.

Надеюсь, вы понимаете, что я имею в виду:]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...