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.
problemidomande 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ù.
non molto familiare con questa roba, ma sono sicuro che la sintassi corretta non è 'onvalidate =" validate() "' –
@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
Als o, forse sarà d'aiuto se mostrassi la fonte generata ... –