2012-01-10 14 views
1

Facebook登録プラグイン(http://developers.facebook.com/docs/plugins/registration/)を使用して、私たちのサイトのユーザーを登録しています。問題は、カスタム検証が動作しているように見えず、自分のミスやフェイスブックの間違いかどうか疑問に思っていたことです。Plugin - 検証が失敗してもフォームが送信されますか?

これは私が使用しているXFBMLコードです:私は打つ期待

function validateFacebookRegistrationForm(form) { 
    errors = {}; 

    if (form.password == "") { 
     errors.password = "No Password Entered"; 
    } 

    return errors; 
} 

<fb:registration 
    fields="[{'name':'name'}, 
      {'name':'email'}, 
      {'name':'password','description':'Enter a password','type':'text'}]" 
    redirect-uri="http://local.dev" 
    onvalidate="validateFacebookRegistrationForm"> 
</fb:registration> 

を、私はそれに次のコードを持っているvalidateFacebookRegistrationFormというグローバル機能を持​​っていますフォームの「登録」ボタンは何もせず、確認メッセージが表示されます...代わりに、このようなポップアップが表示されます。

http://i.imgur.com/ERxw3.jpg

ポップアップが閉じられると、フォームが検証され、エラーメッセージが表示されます。再度登録をクリックすると、エラーが修正されるまでフォームが送信されません。これはフォームが最初のインスタンスでどのように動作するかです。

+0

FBMLは廃止されました。使用しないでください。 – Lix

+0

それ以外の方法でフィールドの検証を行うことはできますか?ドキュメントから: "登録時にフィールドに検証を追加したい場合は、iframeがクロスドメイン通信" >> http://developers.facebookを実行できないため、プラグインのXFBMLバージョンを使用する必要があります。 com/docs/plugins/registration/advanced /にあります。 – csdev86

+0

XFBMLはFBMLではありません:) – Lix

答えて

0

Facebook登録プラグインは、ユーザーが「Register」を押してから「Continue」を押すまで、クライアント側で検証されません。そして、それは "クライアント側"の検証を行います...それは本当にその順序で行くのは理にかなっていませんが、そうであるようです。

コードは問題ありません。