facebook异步验证不显示错误

时间:2011-06-29 13:25:07

标签: xfbml facebook-javascript-sdk

当javascript控制台显示“用户名”字段的错误时,它会一直显示“Not a custom field name:username”。显然有一个名为“username”的字段。我尝试将它改为其他任何名称,但它仍然无法正常工作。 知道发生了什么事吗?

<fb:registration redirect-uri="<?=$pageurl?>" 
  fields="[{'name':'name'},{'name':'email'},{'name':'location'},{'name':'username','description':'Username','type':'text'},{'name':'password','view':'not_prefilled'},{'name':'captcha','view':'not_prefilled'}]"
  onvalidate="validate" width="400"></fb:registration> 

和我的验证功能......

function validate(form,cb)
{
    console.dir(form);  
    $.get('/api/?f=user_email_present&username='+form.username+"&email="+form.email,function(data){
        console.log(data);
        if(data.username==false)
        {
            cb();
        }
        else 
        {
            if(data.username=='username')
                cb({username: 'That username is already taken. Please try another username.'});
            else if(data.username=='usernamelength')
                cb({username: 'The username cannot exceed 20 characters in length.'});

        }
    });
}

我不能太确定,但我想我记得这一切都在工作了一段时间。我们在发布后2天就完全震惊了。

更新:我取消了异步验证并使用了其他验证。它仍然会抛出同样的错误!

1 个答案:

答案 0 :(得分:1)

在花了两天的大部分时间后,我设法弄清楚发生了什么。 Facebook的结尾是一个愚蠢但有效的错误。如果窗口小部件的宽度太小,则会出现此错误。将宽度增加到800px会立即修复它。当宽度太小时,它们可能无法呈现正确的误差字段 我已经提交了一份错误报告:https://github.com/facebook/connect-js/issues/275
如果你们可以试一试并评论我的错误报告,以便他们立即采取行动,那就太棒了。