10

मैं एक वेबसाइट पर फेसबुक पंजीकरण लागू करने की कोशिश कर रहा हूं। ऑनवालिडेट पैरामीटर के बिना, सबकुछ काम करता है जैसा कि किसी की अपेक्षा करता है, लेकिन जब इसे शामिल करना सबकुछ टूट जाता है (कोई त्रुटि नहीं फेंकती है, फॉर्म कुछ भी नहीं करता है)।<एफबी: पंजीकरण 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 फंक्शन फॉर्म के सबमिट करें बटन से टकराने पर बुलाया कभी नहीं किया गया है:

यहाँ मेरी कोड है। (हालांकि, अन्यथा यह लगभग सामान्य कार्य करता है - पॉप अप "आपने एबीसी का उपयोग करके पंजीकरण किया है" दिखाता है और जब मैं पुष्टि करता हूं तो गायब हो जाता है - लेकिन कुछ भी नहीं होता है।

यदि मैं इस पैरामीटर के बिना कस्टम फ़ील्ड (उपयोगकर्ता नाम) खाली छोड़ देता हूं , फेसबुक मुझे इसे भरने के लिए कहता है। अगर मैं इसे इस पैरामीटर के साथ खाली छोड़ देता हूं, तो वैध फ़ंक्शन को कॉल नहीं किया जाता है और यह कोई त्रुटि नहीं दिखाता है। किसी भी तरह से, TOS त्रुटि जो हमेशा इस फ़ॉर्म के अनुसार दिखाई देनी चाहिए अप।

इसी प्रकार के प्रश्नों की समस्याओं वेबसाइट आवेदन की है कि मिलान नहीं यूआरएल शामिल है। यही कारण है, ऐसा नहीं है इस उदाहरण में।

डोमेन स्पष्टीकरण के लिए, मैं डोमेन उपयोग कर रहा हूँ "im.localhost" जो इंटरनेट के माध्यम से पहुंच योग्य नहीं है। मुझे विश्वास नहीं है कि यह एक समस्या है, क्योंकि बिना पंजीकरण के पंजीकरण फॉर्म काम करता है, और लॉगिन सिस्टम मैंने काम लागू किया है। हालांकि, वैधता के साथ, पंजीकरण फार्म बिल्कुल काम करना बंद कर देता है।

+0

वास्तव में इस सामान से परिचित नहीं कॉल करने के लिए है, लेकिन आप यकीन है कि सही सिंटैक्स हैं नहीं 'onvalidate =" सत्यापित करें() "' –

+0

@ZachL यह क्या कर रहा है के रूप में आप में परिणाम का वर्णन किया है:। "असमर्थ% APPNAME (स्वयं फ़िल्टर किए गए)% के लिए पंजीकरण फार्म लोड करने के लिए आप हो सकता है पहले से फेसबुक पर इस एप्लिकेशन को अवरुद्ध । (: बस 'onvalidate' में जावास्क्रिप्ट समारोह नाम गुजरती हैं, न डालें() में त्रुटि।) " – Navarr

+0

ए एल एस इस एप्लिकेशन को अनवरोधित करने के लिए अपने फेसबुक गोपनीयता सेटिंग पर जाएं। ओ, शायद यह करता है, तो आप आप [फेसबुक डॉक्स से उदाहरण कोड] स्थानापन्न तो उत्पन्न स्रोत दिखाने ... –

उत्तर

1
onvalidate="validate()" 

onvalidate = "मान्यकरण" तुम सिर्फ एक स्ट्रिंग बुला रहे हैं ...

आप कोष्ठक जरूरत है एक समारोह

+0

कृपया मूल प्रश्न के तहत टिप्पणी धागा देखें। हालांकि यह लगभग एक वर्ष पुराना है। http://stackoverflow.com/questions/14819455/fbregistration-onvalidate-not-working/20308282?iemail=1&noredirect=1#comment20837792_14819455 – Navarr