数据:$(this).serialize()无法以向导形式工作

时间:2019-09-05 13:52:45

标签: jquery html ajax

数据:$(this).serialize()未发布到php。从完成的(函数(数据)中,我可以使用

在屏幕上查看serialize()
$("div").text($("form").serialize());

但它不会发布到url:'submission.php'

我是新手。请帮忙。

我的向导表单具有正确的所有名称=“”。我已经花了2天的时间尝试调整它才能开始工作。

<script type="text/javascript">
    $(document).ready(function() {
        $('.wizard-card').bootstrapWizard({onTabShow: function(tab, navigation, index) {
            var $total = navigation.find('li').length;
            var $current = index+1;
            var $percent = ($current/$total) * 100;
            $('.wizard-card').find('.bar').css({width:$percent+'%'});
        }});
        $('.wizard-card .finish').click(function() {
            // show that something is loading
            $('#response').html("Loading...");

            $.ajax({
                type: 'POST',
                url: 'submission.php',
                data: $(this).serialize()

            })

                    .done(function(data){
                        $(location).attr('href', 'submission.php')

                    })

                    .fail(function() {
                        // just in case posting your form failed
                        $('#response').html("Oops. Try again.")

                    });

            // to prevent refreshing the whole page page
            return false;

        });
    });
</script>

它应该将数据发布到submitt.php,但不发布

1 个答案:

答案 0 :(得分:0)

  

我可以使用$(“ div”)。text($(“ form”)。serialize())在屏幕上查看serialize();

因为您使用的是$("form").serialize(),它专门针对表单元素。您用$(this).serialize()定位的目标是什么?在这种情况下,this是什么?由于您处于$('.wizard-card .finish').click()处理程序的上下文中,因此this.wizard-card .finish元素。 不是表格。

既然您已经确定$("form").serialize()可以使用,请使用它:

$.ajax({
    type: 'POST',
    url: 'submission.php',
    data: $('form').serialize()
})

请注意,如果页面上的form超过一个,则可能会产生意想不到的结果。在这种情况下,您可能想使用id来更具体地定位它。