2012-01-10 80 views
1

我正在使用Facebook註冊插件(http://developers.facebook.com/docs/plugins/registration/)爲我們的網站註冊用戶。問題是我似乎無法獲得自定義驗證工作,並想知道這是我的錯誤還是Facebook的錯誤。Facebook註冊插件 - 表單提交即使驗證失敗?

這是XFBML代碼,我使用的是:

<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全局函數中有如下代碼:

function validateFacebookRegistrationForm(form) { 
    errors = {}; 

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

    return errors; 
} 

我希望擊中註冊表單上的按鈕將不會執行任何操作,驗證信息將顯示出來...而是我會看到類似如下的彈出窗口:

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

一旦彈出窗口關閉,窗體將被驗證...並顯示錯誤消息。再次點擊註冊將不會提交表單,直到錯誤得到解決 - 這是表單應該如何表現的第一個例子!

+0

FBML已被刪除 - 你不應該使用它。 – Lix 2012-01-10 09:58:54

+0

我還可以如何驗證字段?從文檔:「如果您想在註冊期間爲任何字段添加驗證,則必須使用插件的XFBML版本,因爲iframe無法跨域通信」>> http://developers.facebook。 COM /文檔/插件/註冊/高級/。 – csdev86 2012-01-10 10:04:16

+0

XFBML不是FBML :) – Lix 2012-01-10 10:08:30

回答

0

Facebook註冊插件沒有客戶端驗證,直到用戶按下「註冊」後,然後在彈出窗口中按下「繼續」。然後,它將執行「客戶端」驗證......按順序進行確實沒有意義,但看起來似乎如此。

你的代碼沒問題。