提交时jquery ajax表单验证然后继续表单提交

时间:2011-03-02 22:30:16

标签: php jquery ajax forms

这是我正在尝试做的事情,

捕获我的表单提交,将其发布到我的ajax处理表格验证(显然没有重新加载页面)

然后,如果ajax服务器端没有返回错误数组(下面代码中的数据),请继续执行实际的表单提交。代码段底部的'return false'应该阻止jquery默认行为(即提交表单)

如果我们没有收到任何错误,我只试过return true,但这不起作用。

有什么建议吗?

这是我到目前为止所得到的:

$('.submit').click(function(e) {
    $.ajax({
        type: "POST",
        url: "/processform_ajax",
        data: $(':input').serializeArray(),
        dataType: "json",
        success: function(data) {
            if (data != '') {
                $("#response span").html("");
                $('.highlightbox').removeClass('highlightbox');
            } else {
                $('#myform').submit();
            }
        },
        error: function(error, txt) {
            alert("Error: " + error.status);
        }
    });
    return false;
});

1 个答案:

答案 0 :(得分:0)

我处理这两种不同的方式:

首先,使用精彩的Jquery Inline validation tool进行前端验证。这个步骤可以解决95%的问题,然后再使用PHP和Jquery变得棘手。

其次,我将表单中的值提交给脚本。让PHP(在我的例子中)对验证进行“思考”。如果不正确,我会在json_encoded字符串中为成功函数返回该信息。我构建了一个案例(例如data.valid == true)然后显示错误标志。否则,请执行成功步骤并在UI中通知用户。

我认为你的案例中的关键是确保返回的数据是json_encoded。仅供参考,我注意到json_encode的一些非常随机的问题有时会因为方括号而导致数据返回功能出现问题,这些问题完全有效,但有时会导致无错误。

祝你好运。