javascript – 不工作

我正在网站上实施Facebook注册.没有onvalidate参数,一切都可以像预期的那样工作,但是当包含它时,一切似乎都被分解(没有错误抛出,form什么都不做).

这是我的代码

<center>
    <fb:registration redirect-uri="http://im.localhost/register"
    fields='[{"name":"name"},{"name":"username","description":"Website Username","type":"text"},{"name":"email"},{"name":"password","view":"not_prefilled"},{"name":"captcha",{"name":"tos","type":"checkBox","description":"I accept the Terms of Service"}]' onvalidate='validate'>
    </fb:registration>
</center>
<script> 
function validate(form) {
    console.log('Validation');
    errors = {};
    errors.tos = "You must accept the terms of service";
    return errors;
}
</script>
<!-- at end of page: -->
<script>
    // ...
    FB.init({
        appId: '<?PHP echo IM_Facebook::getAppIDStatically(); ?>',channelUrl: '<?PHP echo $this->serverUrl().$this->baseUrl('/xsrd.html'); ?>',status: true,cookie: true,xfbml: true
    });
    // ...
</script>

登录表单的提交按钮时,不会调用console.log函数. (但是,否则它的行为几乎正常 – 弹出“您已经使用abc注册”,当我点击确认时会显示并消失,但没有其他的事情发生.

如果我将自定义字段(用户名)留空,而没有这个参数,Facebook要求我填写它.如果我将此参数留空,则不会调用validate函数,并且不显示任何错误.无论哪种方式,始终显示根据此表单的TOS错误永远不会出现.

类似问题的问题涉及网站URL与应用程序的不一致.在这种情况下并非如此.

对于域名澄清,我使用的域名“im.localhost”是无法通过互联网访问.我不相信这是一个问题,因为没有验证注册表的工作,和登录系统我已经实施工作.然而,无效,注册表完全停止工作.

解决方法

onvalidate="validate()"

onvalidate =“validate”你只是调用一个字符串…

你需要括号来调用一个函数

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面