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;
})