如何通过ajax禁用页面重新加载以发送表单?

时间:2013-05-03 18:55:00

标签: html ajax forms jquery

我有简单的表单,我想通过ajax请求从表单发送数据。 我试试这个:

    $('form#station').submit(
            function() {
                console.log('form submit without reloading');
                var coords = station.geometry.getCoordinates();
                 console.log(data);
                $.ajax(
                        {
                            url: '/admin/station/add-ajax',
                            method: 'post',
                            data: {},
                            success: function(result) {
                                console.log('succcess');
                            }
                        }
                );
                return false;
            }
    );

为什么要重新加载页面?

2 个答案:

答案 0 :(得分:1)

尝试包含event.preventDefault(); 应该工作。

答案 1 :(得分:1)

如果使用event.preventDefault();你应该通过该函数传递事件对象,因为如果不这样,IE将会出现问题。所以:

$('form#station').submit(function(e){
    e.preventDefault(); // e = event
});

我通常会使用return false;你可以把它放在所有其他代码之前,以确保它在ajax运行之前停止提交。在实际停止提交之前,它可能只是等待太长时间获取数据。很难说清楚。