0

フォーム検証ioでフォームを検証しています.ajaxを介して送信する前にフォーム全体を複製するとどうなりますか.後ろでエラーが発生した場合は、エラーメッセージをボタンでロードします.クリックするとフォームが再度読み込まれます.バリデーターが一度も機能しないロガーがロードされます。

誰かが私を助けることができれば、これが私のコードの一部です:

        $.on("success.form.fv", function(e){
                e.preventDefault();
                var $form= $(e.target);
                var modal= $form.children(".modal-body");
                var datos= $form.serialize();
                var modalClonado= modal.children(".row").clone();


                $.ajax({
                    success: function(data) {
                        if ("user" in data) {
                            modal.html(error+data.user+cerrarError);
                        } 
                    }
                });
                $form.on("click", "button", function(){
                    modal.html(modalClonado);   
                    $form.find("#submit")
                            .removeClass("disabled")
                            .prop("disabled", false);
                }); 
            });
4

1 に答える 1

0

元のフォームを DOM から削除してから新しいフォームに置き換える場合、バリデーターは添付されません。新しいフォームを送信しようとしたときにフォームを検証する別の検証オブジェクトをフォームに追加する必要があります。

検証に合格しない場合、元のフォームを完全に置き換える必要があるのはなぜですか? 代わりに、ユーザーが元の無効なフィールドを編集できるようにし、フォームを再送信できるようにする方が簡単でしょうか?

編集:

検証から結果を取得したら、e.preventDefault()検証に合格しなかったときにフォームの送信を停止し、必要に応じてエラー メッセージを追加するために使用できます。これにより、フォームはそのまま残り (ページから移動したり、ページを更新したりする必要はありません)、ユーザーはフォームに戻って無効なフィールドを編集し、同じ検証プロセスが行われるフォームの再送信を試みることができます。再び行われます。フォームが正常に検証された場合は、フォームで を使用.submit()してフォームを送信できます。$('#formToSubmit').submit(). この方法では、バリデータ オブジェクトを元のフォームに 1 回追加するだけで、ユーザーは成功するまでフォームの送信を試行し続けることができます。

于 2016-04-05T01:01:11.403 に答える