我编写了一个AJAX表单脚本。提交后,表单将在PHP中验证。如果一切正常,则会显示成功消息。如果存在验证错误,我将用户指向相应的字段,以便可以轻松纠正输入。 之后,表格必须再次提交。
使用$("form").submit
调用初始函数。为了在更正验证错误后允许重新提交,我
$(".error-msg").click( function () {
$("form").submit();
});
(是的,通过单击错误消息提交表单。)
有效,我可以看到数据被POST,但没有显示成功消息。为什么?是否有可以递归方式使用的.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;
})