10

Я пытаюсь осуществить регистрацию Facebook на веб-сайте. Без параметра onvalidate все работает так, как можно было бы ожидать, но при его включении все, кажется, ломается (ошибки не выбрасываются, форма ничего не делает).<fb: registration onvalidate = "" /> не работает

Вот мой код:

<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","view":"not_prefilled"},{"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 просит меня заполнить его. Если я оставлю его пустым с этим параметром, функция проверки не вызывается, и она не показывает никаких ошибок. В любом случае ошибка TOS, которая всегда должна отображаться в соответствии с этой формой, никогда не отображается вверх. проблемы

подобные вопросы включать адрес веб-сайта, не совпадающее приложения. это не так, то в этом случае.

для домена разъяснении, я использую домен «im.localhost», который недоступен через Интернет. Я не считаю, что это проблема, потому что без onvalidate работает регистрационная форма, и система входа в систему, которую я выполнил, работает. Однако с подтверждением регистрации регистрационная форма вообще перестает работать.

+0

не очень знакомы с этим материалом, но вы уверены, что правильный синтаксис не является 'onvalidate =" validate() "' –

+0

@ZachL Выполнение, как вы описали результаты в: «Не удалось загрузить регистрационную форму для% appname (самофильтрованное)%. Возможно, вы заблокировали это приложение ранее на Facebook Перейдите в настройки конфиденциальности Facebook, чтобы разблокировать это приложение. (Ошибка: просто передайте имя функции javascript в 'onvalidate', не ставьте().) " – Navarr

+0

Als o, возможно, это поможет, если вы покажете сгенерированный источник ... –

ответ

1
onvalidate="validate()" 

OnValidate = «проверить» вы просто звоните строку ...

вам нужна скобка, чтобы вызвать функцию

+0

Пожалуйста, обратитесь к теме комментариев по оригинальному вопросу. Хотя это почти год. http://stackoverflow.com/questions/14819455/fbregistration-onvalidate-not-working/20308282?iemail=1&noredirect=1#comment20837792_14819455 – Navarr