2012-10-18 10 views
8

私はSymfony2コンポーネントとDoctrineを使用しています。検証はサーバ側で非常に有効です(エンティティなどの制約)。私がしたいのは、AJAXを介してフォーム(自分のカスタムをSymfonyフォームコンポーネントを使用せずに構築)を検証することです。Symfony2 AJAX検証

検証コンポーネントを使用してAJAXを使用してフィールドを検証する方法はありますか?

jQuery検証プラグインを使用する必要がありますか?それ以来2つの異なるバリデーションが使用されているので論理的ではないようです。

答えて

9

AJAX経由でシリアライズされたフォームを送信し、検証エラーが含まれている場合はレンダリングされたフォームをサーバー側から返すことができます。サーバー側では

$.post($form.attr('action'), $form.serialize(), function (response) { 
    if (response.success) { 
     // do something on success 
    } else { 
     $form.replaceWith(response.form); 
    } 
}); 

あなたはそれがAJAX要求だかどうかを確認し、JSON形式でresponseを返します。

+0

@elnurの回答ありがとうございます。これも私の考えですが、このようにエラーを見るためにフォームを提出する必要があります。私はそれがjQueryのようなもので、ユーザーがメールの入力を開始したときにプラグインを検証し、正しくない場合はメッセージが表示されます。しかし、私は、それぞれのキー押下でAJAX要求をしたくありません。 –

+1

セキュリティやその他の問題のために、登録されたすべての電子メールのリストを最初のページでJSにロードするのは意味がないため、とにかくAJAXリクエストを行う必要があります。それぞれのキー押下ではなく、タイムアウトまたは 'change'イベントの後に実行してください。 –

+0

それは理にかなっています。ありがとうございました! –

関連する問題