在Ajax插入后,表单不会序列化

时间:2015-07-13 23:21:07

标签: javascript php jquery ajax

撕掉我的头发。我有40行简单的表单,这些表单是从mysql数据库动态生成的。每个表单都有一个基于数据库ID的唯一ID。单击提交后,结果将在数据库中更新并插入div(#result)。

第一次完美地工作。但是,在第一次脚本不会序列化更新的表单数据之后。 ID很好(通过警报检查)但是formData为空(也通过警报检查)。

认为我需要以某种方式重新定位表单?任何帮助将不胜感激。感谢。

$('#result').on('click', '.submitform', function () {
    var id = $(this).attr('id');
    var formData = $('#'+id+'-form').serialize();
    $.ajax({
        type: "POST",
        url: "ajax-process-form.php",
        data: formData,
        cache: false,
        success: function(server_response){
            $("#result").html(server_response).show();
        }
    });
    return false;
});

2 个答案:

答案 0 :(得分:0)

只是推理......我可能错了......

此代码

$('#result').on('click', '.submitform'

绑定结果上的点击事件并过滤.submitform,然后以this

.submitform执行

当成功来自服务器时,您正在重写#result

$("#result").html(server_response)

如果server_response不包含.submitform,那么下次对第一个onclick事件的调用将无法执行,因为.submitform <{1}}内不存在#result < / p>

如果这是错误,那么要解决,使用另一个div显示结果而不是#result或绑定到另一个分隔,不包含在div中

答案 1 :(得分:0)

Arrgh - 毕竟这是结构。虽然它第一次使表结构阻止它第二次工作。我不知道为什么......但你去了。谢谢你的帮助!