2010-07-02 22 views
8

मैं एक ग्राहक के लिए एक प्रपत्र सत्यापनकर्ता बनाने गया था [समारोह के बाहर बयान 'वापसी'] और केवल इंटरनेट पलीता (एक्सप्लोरर) में इस अजीब त्रुटि आ गई 7/8 ....मुझे यह त्रुटि मिलती है!

'return' outside of function, line 1, char 1

के

बेशक, लाइन 1 पर कोई भी कोड नहीं था, यह एक साधारण टिप्पणी का बयान था। और किसी भी तरह से इसके साथ wring कुछ भी नहीं था। तो मुझे पता था कि यह सिर्फ एक डीबग मिस-डायरेक्ट था।

मैं समझने के लिए यहाँ गलत हो सकता है बाहर मेरे बाल खींच किया गया है ...

मैं पहले से ही स्पष्ट की संभावना से इनकार किया है: एक पाश में वापसी बयान, एक भी समारोह में ऐसे अनेक वापसी बयान, किसी भी रिटर्न वास्तव में एक वैध कार्य परिभाषा के बाहर।

किसी और किसी भी उदाहरण है जब यह हो गया है हुआ है?

+2

आमतौर पर इसका मतलब है कि यह वास्तव में क्या कहते हैं - आप किसी भी कार्य के बाहर एक वापसी कथन है। नमूना कोड मदद करेगा ... – HurnsMobile

+1

शायद कुछ स्रोत कोड आपकी मदद करने में हमारी सहायता करेंगे? – jball

+0

एक कोड उदाहरण मदद करेगा। आपके कोड में त्रुटि की पहचान करने के लिए एक त्रुटि संदेश पर्याप्त नहीं है। – riwalk

उत्तर

15

मुझे मिल गया!

समस्या यह है कि मैं एक वापसी कथन उपयोग कर रहा था मेरी फार्म के लिए डिफ़ॉल्ट व्यवहार को ओवरराइड करने के लिए था और यह एक संपत्ति को सौंपा गया था, लेकिन यह एक गुमनाम समारोह के अंदर रखा नहीं किया गया था!

मैं एक ऐसा फ़ॉर्म तत्व है कि इस तरह स्थापित किया गया था था:

… action="javascript:function(){return false};" 

अब यह दोषरहित काम करता है:

<form name="formname" onSubmit="javascript:validateForm(this);" action="javascript:return false;" method="post" enctype="multipart/form-data"> 

सभी मैं बदलने के लिए की जरूरत है यह करने के लिए कार्रवाई की संपत्ति थी!

आशा इस नरक मैं माध्यम से चला गया से किसी और को बचाता है।

+4

'जावास्क्रिप्ट: 'यूआरएल बुरा हैं; कभी भी उनका उपयोग न करें, खासकर 'एक्शन' के लिए। यदि वहाँ वास्तव में कहीं नहीं उपयोगी गैर जे एस उपयोगकर्ताओं के लिए प्रपत्र बात करने के लिए, आप इसे 'की तरह #' एक बेकार कार्रवाई दे सकते हैं, और 'ऑनसबमिट =" return false "' का उपयोग इसे प्रस्तुत करने को रोकने के लिए (कोई 'जावास्क्रिप्ट: 'उपसर्ग है ईवेंट हैंडलर पर आवश्यक है, जो यूआरएल नहीं हैं; इसमें कुछ भी समझदार नहीं है)। या, यदि आपको स्क्रिप्ट-केवल फॉर्म फ़ील्ड्स को कहीं भी सबमिट करने की आवश्यकता नहीं है, तो आप फॉर्म टैग को छोड़ सकते हैं। – bobince

+0

क्षमा करें, लेकिन कुछ ब्राउज़रों में हैश "#" एक अतिरिक्त HTTP अनुरोध उत्पन्न करता है, जिसे टालना चाहिए। विशेष रूप से जब Google पेज लोड गति पर घबरा रहा है। यह जानकारी लोगों को यह बताना है कि किसी भी फ़ंक्शन के बाहर किसी भी तरह से वापसी का उपयोग करने से आईई को एक त्रुटि फेंकने का कारण बन जाएगा। जब भी आप "वापसी" का उपयोग करते हैं, कोई फर्क नहीं पड़ता कि यह किस संपत्ति में है, इसे किसी फ़ंक्शन में संलग्न होना आवश्यक है: अज्ञात या अन्यथा। झूठी वापसी करके आप ब्राउज़र को अपना डिफ़ॉल्ट व्यवहार करने से रोकते हैं। यह सभी ब्राउज़रों में काम करता है। "जावास्क्रिप्ट:" भाग सहित बस अच्छा प्रथा है: यह उचित कोड प्रकार सुनिश्चित करता है। – exoboy

+1

@ बॉबन्स सही है, 'जावास्क्रिप्ट:' का उपयोग न करें। 'Onsubmit =' का उपयोग करें मान्य करेंफॉर्म (यह); "इसके बजाय। फॉर्म को सबमिट करने से रोकने के लिए 'validateForm' को झूठी वापसी की आवश्यकता है। 'ऑनसममिट' पहले ही जावास्क्रिप्ट की अपेक्षा करता है, इसलिए 'जावास्क्रिप्ट' की आवश्यकता नहीं है। तो कार्रवाई को खाली क्यों न छोड़ें? # के लिए कोई ज़रूरत नहीं है। – roberkules

1

कभी-कभी जब आप अंत सिस्टम वापस लिख रहे हैं जहां उपयोगकर्ता जावास्क्रिप्ट क्रम प्रणाली का उपयोग करने में सक्षम किया गया है की उम्मीद है। मुझे जावास्क्रिप्ट का उपयोग करने में अच्छा लगता है: href टैग, क्योंकि सिस्टम के उपयोग के लिए जावास्क्रिप्ट को वैसे भी आवश्यक है। इस मामले में, href = "जावास्क्रिप्ट:" का उपयोग करने में कुछ भी गलत नहीं है?

0

मैं एक ModalPopupExtender के साथ इस त्रुटि हो रही थी। मैंने निम्नलिखित विशेषता निर्दिष्ट की थी: OnOkScript = "झूठी वापसी;"

OkOkScript स्थापना = "" मेरे लिए इस समस्या को हल।

1

पर जांच करें सुनिश्चित करें कि आप अपने फ़ंक्शन पैरामीटर में "var" लिख नहीं रहे हैं। कई भाषाओं में आपको तर्क पैरामीटर के प्रकार को निर्दिष्ट करना होगा। जावास्क्रिप्ट में आपको नहीं करना है।

+0

शायद आपको यह बताएं कि 'var' ओपी की' वापसी 'के साथ कैसे मदद करता है। – dakab

संबंधित मुद्दे