Php jquery ajax表单提交验证,然后继续表单提交
这就是我要做的 捕获我的表单提交并将其发布到我的ajax处理以进行表单验证(显然不需要重新加载页面) 然后,如果ajax服务器端没有返回错误数组(下面代码中的数据),则继续实际的表单提交。代码段底部的“return false”应该可以防止jquery的默认行为(即提交表单) 如果我们没有得到任何错误,我已经尝试了Php jquery ajax表单提交验证,然后继续表单提交,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,这就是我要做的 捕获我的表单提交并将其发布到我的ajax处理以进行表单验证(显然不需要重新加载页面) 然后,如果ajax服务器端没有返回错误数组(下面代码中的数据),则继续实际的表单提交。代码段底部的“return false”应该可以防止jquery的默认行为(即提交表单) 如果我们没有得到任何错误,我已经尝试了返回true,但这不起作用 有什么建议吗 以下是我到目前为止得到的信息: $('.submit').click(function(e) { $.ajax({ t
返回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;
});
我用两种不同的方式来处理这个问题: 首先,使用奇妙的方法进行前端验证。在使用PHP和Jquery变得棘手之前,这一步骤可以解决95%的问题 其次,我将表单中的值提交给脚本。让PHP(在我的例子中)对验证进行“思考”。如果不正确,我将以json_编码的字符串形式为success函数返回该信息。我构建一个案例(例如,如果
data.valid==true
),然后显示错误标志。否则,执行成功步骤并在UI中通知用户
我认为在您的案例中,关键是确保返回的数据是json_编码的。仅供参考,我注意到json_encode存在一些非常随机的问题,有时由于方括号的原因导致数据返回函数出现问题,这是完全有效的,但有时会导致无误错误
祝你好运。我用两种不同的方式处理这个问题: 首先,使用奇妙的方法进行前端验证。在使用PHP和Jquery变得棘手之前,这一步骤可以解决95%的问题 其次,我将表单中的值提交给脚本。让PHP(在我的例子中)对验证进行“思考”。如果不正确,我将以json_编码的字符串形式为success函数返回该信息。我构建一个案例(例如,如果
data.valid==true
),然后显示错误标志。否则,执行成功步骤并在UI中通知用户
我认为在您的案例中,关键是确保返回的数据是json_编码的。仅供参考,我注意到json_encode存在一些非常随机的问题,有时由于方括号的原因导致数据返回函数出现问题,这是完全有效的,但有时会导致无误错误
祝你好运。你的HTML/表单是什么样子的?在processform\u ajax上它返回什么?你的HTML/表单是什么样子的?在processform\u ajax上它返回什么?谢谢。我已经解决了所有这些问题,但是您的回答让我发现问题在于我处理JSON响应的方式。基本上,我认为JS抛出了一个错误,因为在AJAX返回时,如果一切正常,我没有返回数据数组,这导致JS在“data”未定义时出现“if”语句问题,因此$(“#myform”).submit从未执行。无错误时设置data.valid==true修复了该问题。我希望这是有道理的:)谢谢。我已经解决了所有这些问题,但是您的回答让我发现问题在于我处理JSON响应的方式。基本上,我认为JS抛出了一个错误,因为在AJAX返回时,如果一切正常,我没有返回数据数组,这导致JS在“data”未定义时出现“if”语句问题,因此$(“#myform”).submit从未执行。无错误时设置data.valid==true修复了该问题。我希望这是有道理的:)