10

Bir web sitesinde Facebook kaydını uygulamaya çalışıyorum. Onvalidate parametresi olmadan, her şey beklendiği gibi çalışır, ancak her şeyi dahil ederken her şey bozulur gibi görünüyor (atılan hiçbir hata yok, form hiçbir şey yapmıyor).<fb: registration onvalidate = "" /> çalışmıyor

<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 fonksiyon formun Gönder düğmesini isabet üzerinde hiçbir zaman denir:

İşte benim kodudur. (Ancak, aksi halde hemen hemen normal davranır - pop up "Abc kullanarak kaydoldum" gösterir ve onaylama işaretini tıkladığında kaybolur - ancak başka bir şey olmaz.

Özel alan (kullanıcı adı) bu parametre olmadan boş kalırsam , Facebook bunu doldurmamı ister, eğer bu parametreyle boş bırakırsam, doğrulama fonksiyonu çağrılmaz ve herhangi bir hata göstermez.Her iki şekilde de, her zaman bu forma göre görünmesi gereken TOS hatası yukarı.

Benzer sorular sorunlar uygulamanın o uymayan web URL'sini içerir. yani bu durumda, durum böyle değildir. domain açık bilgi için

, ben domain kullanıyorum İnternet üzerinden erişilemeyen "im.localhost". Bunun bir sorun olduğuna inanmıyorum, çünkü onvalidate olmadan kayıt formu çalışıyor ve iş yaptığım giriş sistemi. Bununla birlikte, onvalidate ile kayıt formu hiç bitmez.

+0

gerçekten aşina olmayan bir fonksiyonu çağırmak için parantez gerekir, ancak emin doğru sözdizimi vardır ... Sadece bir dize aradığınız "doğrulamak" "onvalidate =" validate() "' –

+0

@ZachL Bunu açıkladığınız gibi yapmak: "% appname (kendinden filtrelenmiş) için kayıt formu yüklenemedi. Bu uygulamayı Facebook'ta daha önce engellemiş olabilirsiniz. Bu uygulamanın engellemesini kaldırmak için Facebook gizlilik ayarlarına gidin. (Hata: Sadece 'onvalidate' deki javascript işlev adını iletin, koymayın(). " – Navarr

+0

Als o, belki de oluşturulan kaynak gösterir eğer yardımcı olacaktır ... –

cevap

1
onvalidate="validate()" 

OnValidate =

Bunlarla bir

+0

Lütfen orijinal soru altındaki yorum konularına bakın. Bu neredeyse bir yıllık olmasına rağmen. http://stackoverflow.com/questions/14819455/fbregistration-onvalidate-not-working/20308282?iemail=1&noredirect=1#comment20837792_14819455 – Navarr