0

我正在使用带有来自表单的信息的服务器端处理的 DataTables。在表单提交数据表时发送一个 Ajax 请求,该请求由 Java Servlet 处理。

在遇到一些问题后,我决定开始使用 Firebug。当我单击提交按钮时,萤火虫返回以下与 Jquery 相关的错误:

// Do send the request
// This may raise an exception which is actually
// handled in jQuery.ajax (so no try/catch here)
xhr.send( ( s.hasContent && s.data ) || null ); 

当我使用 Firebug 重新发送请求时,请求被正确处理,这意味着一个 JSON 响应被发送到浏览器。

我感觉调用的顺序有问题,比如 servlet 没有准备好或类似的东西,这可以解释为什么重新发送请求会成功。虽然我不确定。

数据表jQuery代码:

$(document).ready(function() {
    $("#searchResults").dataTable({
        "bJQueryUI": true
        });
    $('.searchsubmit').click(function() {
        var formData = $('form').serialize();
        $("#searchResults").dataTable({
            "bDestroy": true,
            "bProcessing": true,
            "bServerSide": true,
            "sAjaxSource": 'Search',
            "sServerMethod": "POST",
            "aoColumns": [
                          { "mDataProp": "messagecaseid" },
                          { "mDataProp": "messagesubject" },
                          { "mDataProp": "messagesender" },
                          { "mDataProp": "messagereceiver" }
                      ],
            "fnServerParams": function ( aoData ) {
                aoData.push({"name": "formData", "value": formData}
                        );
            }
        });
    });
});
4

1 回答 1

0

在 onClick 方法中将返回值设置为 false,这样页面就不会刷新并且 Datatables 有机会填充表格。

于 2012-06-14T08:25:02.380 回答