2012-10-18 89 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 Validate插件,當用戶開始輸入電子郵件時,如果它不正確 - 顯示消息。但我不想在每個按鍵上發出AJAX請求。 –

+1

由於在首頁加載時將所有註冊郵件列表發送給JS是沒有意義的 - 由於安全性和其他問題 - 您必須提出AJAX請求。你應該不是在每次按鍵時都做,而是在一些時間或「變化」事件之後。 –

+0

這很有道理。謝謝! –