【问题标题】:jquery ajax form validation on submission then continue on to form submissionjquery ajax表单验证提交然后继续表单提交
【发布时间】:2013-04-03 12:34:23
【问题描述】:

这就是我想要做的,

捕获我的表单提交并将其发布到我的 ajax 处理以进行表单验证(显然无需重新加载页面)

然后,如果 ajax 服务器端没有返回错误数组(下面代码中的数据),则继续进行实际的表单提交。 sn-p底部的'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;
});

【问题讨论】:

  • 你的 HTML/表单是什么样的?
  • 在您的 processform_ajax 上它返回什么?

标签: php jquery ajax forms


【解决方案1】:

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

首先,使用美妙的Jquery Inline validation tool 进行前端验证,这一步可以解决 95% 的问题,然后才不得不使用 PHP 和 Jquery。

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

我认为您的情况的关键是确保返回的数据是 json_encoded。仅供参考,我注意到 json_encode 的一些非常随机的问题有时会由于方括号而导致数据返回函数出现问题,这完全有效,但有时会导致非错误错误。

祝你好运。

【讨论】:

  • 谢谢。我真的把这一切都解决了,但你的回答让我发现问题出在我处理 JSON 响应的方式上。基本上我认为 JS 抛出了一个错误,因为如果一切都很好,在 AJAX 返回时,我没有返回数据数组,这导致 JS 在“数据”未定义时出现“if”语句问题,所以 $( '#myform').submit 从未执行。在没有错误的情况下设置 data.valid == true 解决了这个问题。我希望这是有道理的:)
猜你喜欢
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多