2017-03-05 11 views
0

私はパスポートを使用してユーザーを登録しています。ユーザーが登録する前に、プロフィールに保存するいくつかの質問にも回答する必要があります。回答はVarsに保存されます。リダイレクトせずに登録フォームを確認しますか?

私の問題は、フォームの送信中にユーザーに問題が発生した場合です(例:ユーザー名が取得された場合)。ページがリダイレクトされ、質問のデータが失われます。どこにリダイレクトする前にフォームが適切であることを確認するためにチェックするのですか?

私はこれを試してみましたが、今のところ、私はそれが私はそれが何をする必要があるかやってもらうカント:ローカルストレージに

$(function() { 
       $("#checkForm").on("submit", function(e) { 
        e.preventDefault(); 
        $.ajax({ 
         url: $(this).attr("action"), 
         type: 'POST', 
         data: $(this).serialize(), 
         beforeSend: function() { 
          alert('do something to check form?') 
         }, 
         success: function(data) { 
          alert('Form is good now register user?') 
          $("#message").hide(); 
          $("#response").html(data); 
         } 
        }); 
       }); 
      }); 
+0

dataType:'json' 

を追加することができますあなたは安全に提出することができます。つまり、すべてのフィールドでブール値の配列を使用し、各インデックスを検証してからアクティブにします。すべてが真であればループスルーしてフォームを送信しても安全です。 – Remario

+0

@Caspainリロードする前にユーザーが撮影されているかどうかを確認する方法はわかりません。 – AndrewLeonardi

答えて

0

ストアのユーザーの回答を。登録に成功すると、ストレージがクリアされ、次のページにリダイレクトされます。失敗後、フォームページにリダイレクト(ローカルストレージにユーザーの回答が存在することを確認)し、ユーザーの回答を記入します。リダイレクトせず

app.post('/form', passport.authenticate('local', { successRedirect: '/', 
                failureRedirect: '/form' })); 

:パスポートエンドポイントの

ユーザー検索エンドポイントを作成します。フォーム提出の前にそれを呼び出します。

1

エラーが存在するかどうかを確認するために、サーバーからjson応答を送信できます。 例のJSONレスポンス

{error: true, message: 'User already exists'} 
{error: false, message:'Account created successfully'} 

はその後、AJAXに、あなたはすべてのフィールドが(角しゃれ)クリーンである場合だけで、あなたのフィールドを検証成功メッセージの確認応答に続いて

if(response.error){}else{} 
+0

ありがとう@curious_coder!このコードはどこに置くのですか?上記の関数または私のapp.postコードで? – AndrewLeonardi

+0

どのコードを参照していますか? jsonの応答の例 –

+0

それぞれの部分がどこに行くのか教えてくれれば助かります。ちょっと混乱した – AndrewLeonardi

関連する問題