10

Sto cercando di implementare la registrazione di Facebook su un sito web. Senza il parametro onvalidate, tutto funziona come ci si aspetterebbe, ma quando lo si include tutto sembra andare in pezzi (nessun errore generato, la forma non fa nulla).<fb: registration onvalidate = "" /> non funzionante

Ecco il mio codice:

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

La funzione console.log non viene mai chiamato a colpire pulsante di invio del modulo. (Tuttavia, altrimenti funziona quasi normalmente - il pop-up "Hai registrato usando abc" appare e scompare quando clicco su conferma - ma non succede nient'altro

Se lascio il campo personalizzato (username) vuoto senza questo parametro , Facebook mi chiede di riempirlo Se lo lasciamo vuoto con questo parametro, la funzione di convalida non viene chiamata e non mostra alcun errore. In ogni caso, l'errore TOS che dovrebbe sempre apparire in base a questo modulo non viene mai visualizzato up.

problemi

domande simili implicano l'URL del sito web che non corrisponde quella della domanda. non è questo il caso, in questo caso.

Per chiarimenti dominio, sto usando il dominio "im.localhost" che è inaccessibile via internet. Non credo che questo sia un problema, perché senza l'onvalidate il modulo di registrazione funziona e il sistema di accesso che ho implementato funziona. Con onvalidate, tuttavia, il modulo di registrazione non funziona più.

+0

non molto familiare con questa roba, ma sono sicuro che la sintassi corretta non è 'onvalidate =" validate() "' –

+0

@ZachL Facendolo come hai descritto risultati: "Impossibile caricare il modulo di registrazione per% appname (autofiltrato)%. Potresti aver precedentemente bloccato questa app su Facebook Vai alle impostazioni della privacy di Facebook per sbloccare questa app. (Errore: basta passare il nome della funzione javascript in 'onvalidate', non mettere().) " – Navarr

+0

Als o, forse sarà d'aiuto se mostrassi la fonte generata ... –

risposta

1
onvalidate="validate()" 

OnValidate = "convalidare" si sta solo chiamando una stringa ...

è necessario la parentesi di chiamare una funzione

+0

Si prega di fare riferimento al thread di commento sotto la domanda originale. Anche se questo ha quasi un anno. http://stackoverflow.com/questions/14819455/fbregistration-onvalidate-not-working/20308282?iemail=1&noredirect=1#comment20837792_14819455 – Navarr

Problemi correlati