2012-01-10 64 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注册插件没有客户端验证,直到用户按下“注册”后,然后在弹出窗口中按下“继续”。然后,它将执行“客户端”验证......按顺序进行确实没有意义,但看起来似乎如此。

你的代码没问题。