10

Próbuję zaimplementować rejestrację Facebooka na stronie internetowej. Bez parametru onvalidate wszystko działa tak, jak by się tego spodziewało, ale przy jego włączaniu wszystko wydaje się zepsute (żadne błędy nie są wysyłane, formularz nic nie robi).<fb: registration onvalidate = "" /> nie działa

Oto mój kod:

<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> 

Funkcja console.log nigdy nie jest wywoływana na uderzenie przycisk przesyłania formularza. (W przeciwnym razie działa normalnie - pojawia się okienko "Zarejestrowałeś używając abc" pojawia się i znika po kliknięciu potwierdzenia - ale nic więcej się nie dzieje

Jeśli zostawiam pole niestandardowe (nazwa użytkownika) puste bez tego parametru , Facebook prosi mnie o wypełnienie go.Jeśli zostawię to puste z tym parametrem, funkcja sprawdzania poprawności nie jest wywoływana i nie pokazuje żadnego błędu. Tak czy inaczej, błąd TOS, który zawsze powinien być wyświetlany zgodnie z tą formą, nigdy się nie pokazuje w górę. problemy

podobnych pytań obejmować URL witryny nie pasujący że od aplikacji. to nie jest w tym przypadku.

Dla wyjaśnienia domeny używam domenę "im.localhost", który jest niedostępny przez Internet. Nie wierzę, że to jest problem, ponieważ bez unieważnienia działa formularz rejestracyjny, a system logowania zaimplementowałem. W przypadku unieważnienia, formularz rejestracyjny przestaje działać.

+0

naprawdę nie zaznajomieni z tych rzeczy, ale są na pewno poprawna składnia nie jest "onvalidate =" validate() "' –

+0

@ZachL Robi to tak, jak opisałeś: "Nie można załadować formularza rejestracyjnego dla% appname (self-filtered)%. Być może wcześniej zablokowałeś tę aplikację na Facebooku Przejdź do ustawień prywatności Facebooka, aby odblokować tę aplikację. (Błąd: Po prostu podaj nazwę funkcji javascript w polu "unieważnij", nie wstawiaj().) " – Navarr

+0

Als o, może to pomoże, jeśli pokażesz wygenerowane źródło ... –

Odpowiedz

1
onvalidate="validate()" 

OnValidate = „zatwierdź” jesteś po prostu dzwoniąc ciąg ...

trzeba nawias wywołać funkcję

+0

Proszę odnieść się do wątku komentarza pod oryginalnym pytaniem. Chociaż ma już prawie rok. http://stackoverflow.com/questions/14819455/fbregistration-onvalidate-not-working/20308282?iemail=1&noredirect=1#comment20837792_14819455 – Navarr

Powiązane problemy