0

我写了一个 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;
    })
4

0 回答 0