我写了一个 AJAX 表单脚本。提交后,表单在 PHP 中得到验证。如果一切正常,则会显示一条成功消息。如果存在验证错误,我会将用户指向相应的字段,以便可以轻松更正输入。之后,当然必须再次提交表单。
使用 调用初始函数$("form").submit
。为了在更正验证错误后允许重新提交,我会
$(".error-msg").click( function () {
$("form").submit();
});
(是的,通过单击错误消息提交表单。)
那行得通,我可以看到数据已发布,但没有显示成功消息。为什么?是否有.submit
可以以递归方式使用的回调?
编辑
根据要求 - 更多代码:
$("form").submit(function () {
var name = $( "input[name=name]" ),
mail = $( "input[name=email]" ),
message = $( "textarea[name=message]" );
var string = "name=" + name.val() + "&email=" + mail.val() + "&message=" + encodeURIComponent(message.val());
$( "form input" ).attr( "disabled", "true" );
$( "form textarea" ).attr( "readonly", "true" );
$.ajax({
url: "my-form.php",
type: "POST",
data: string,
dataType: "json",
success: function ( result ) {
if ( result.status === "success" ) {
alert( "success" );
}
if ( result.status === "fail" ) {
alert( "fail" );
$.each( result.data, function( k , v ) {
$( "#" + v.field ).removeAttr( "disabled" ).after("<p>" + v.errorMsg + "</p>");
$(".error").animate({
opacity: 1
}, 500);
$(".error").click( function () {
$("form").submit();
});
});
}
}
return false;
})