1

摘要:我有一个:

1) 主页 (Main.php) 2) 简单的 .js 脚本文件 (dashboard.js) 3) 另一个简单的 .php 文件 (form1.php) 4) process.php,一个处理 .js 发送的信息的文件文件(process.php)

就像 tumblr 一样,我正在尝试重新创建相同的“导航”体验 - 单击几个选项,用新代码替换主面板,并在填写某些表格时,将该信息发送给 BD 并在主界面中显示结果。 php

一切都很顺利,但最后一步。单击导航按钮(main.php)后,通过javascript(dashboard.js + form1.php)带来新表单,填写该表单,我单击按钮而不是重新加载页面(jquery-> ajax),它会将我发送到 process.php 文件并向我显示结果。

我尝试不使用“return false”和“event.preventdefault()”重新加载,结果仍然相同。

JS代码

        $('form.ajax').on('submit', function() {
    event.preventDefault();
    var that = $(this),
    url = that.attr('action'),
    type = that.attr('method'),
    data = {};

    that.find('name').each(function(index, value) {

        var that = $(this),
        name = that.attr('name'),
        value = that.val();

        data[name] = value;

    });


    $.ajax({
        url: url,
        type: type,
        data: data,
        success: function(html){
                    event.preventDefault();
                    $("ol#list-feed").append(html);
                    document.getElementById('set-width1').value='';
                    document.getElementById('tags').value='';

                }


    });
    event.preventDefault();
    return false;
});
4

4 回答 4

3

你还没有定义event

$('form.ajax').on('submit', function(event) {
    event.preventDefault();
    //...
});
于 2013-09-13T13:14:07.590 回答
0

您需要将第一行更改为:

$('form.ajax').on('submit', function(event) {

否则event函数内部的变量是未定义的。

于 2013-09-13T13:14:19.410 回答
0

试试这样

$('form.ajax').on('submit', function(event) {
    event.preventDefault();
    //do other works here

}

或从任何地方删除event.preventDefault()并在此函数结束之前使用return false

于 2013-09-13T13:16:17.107 回答
0

这应该工作

 $('form.ajax').on('submit', function(event) {
于 2013-09-13T13:16:33.437 回答