2015-03-12 7 views
6

मैं किसी वेबपेज डिबग करने के लिए कोशिश कर रहा हूँ और मैं एक ऐसा फ़ॉर्म तत्व जिसका उद्घाटनएक फॉर्म का "एक्शन" और "ऑनसमेट": जो पहले निष्पादित करता है?

<form name="aspnetForm" method="post" action="default.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm"> 

है वेब form रों का केवल एक आधार ज्ञान होने देखते हैं, मैं सोच रहा हूँ क्या निष्पादन के आदेश action और के लिए है onsubmit

+2

'जावास्क्रिप्ट: 'सबमिट करने में बेकार है – epascarello

उत्तर

10

यदि action पहले हल किया गया था, तो ब्राउज़र पृष्ठ छोड़ देगा, जेएस निष्पादन वातावरण दूर जाएगा, और onsubmit में जेएस चलाने के लिए कहीं भी नहीं होगा, इसलिए ऐसा नहीं है।

इवेंट हैंडलर डिफ़ॉल्ट कार्रवाइयों से पहले चलते हैं। वे डिफ़ॉल्ट कार्यों को रद्द कर सकते हैं।

5

onsubmit पहले अमल करना होगा, झूठी लौटने यह बंद हो जाता है से प्रपत्र प्रस्तुत किया जा रहा है, और इस तरह action कभी अनुरोध किया जा रहा।

7

यह एचटीएमएल 5 कल्पना से समझाया गया है:

4.10.22.3 Form submission algorithm

जब एक form तत्व रूपप्रस्तुत एक तत्व सबमिटर (आमतौर पर एक बटन) से, वैकल्पिक रूप से एक साथ है submit() विधि ध्वज सेट से सबमिट किया गया है, उपयोगकर्ता एजेंट को follo चलाया जाना चाहिए विंग कदम:

  1. प्रपत्र दस्तावेज़ हो रूप के Document करते हैं।

  2. तो प्रपत्र दस्तावेज़ कोई संबद्ध browsing context है या उसके active sandboxing flag set अपने sandboxed forms browsing context flag सेट है, तो कुछ भी करने के बिना इन चरणों का गर्भपात।

  3. प्रपत्र ब्राउज़िंग संदर्भ प्रपत्र दस्तावेज़ की browsing context हो करते हैं।

  4. submit() विधि से प्रस्तुत हैं ध्वज सेट नहीं है, और सबमिटर तत्व के no-validate state झूठी रूप की interactively validate the constraints और परिणाम की जांच होती है तो: यदि परिणाम नकारात्मक है (बाधा सत्यापन का निष्कर्ष निकाला गया कि वहां अवैध क्षेत्र थे और संभवतः इस उपयोगकर्ता को सूचित किया गया था) fire a simple eventinvalidफॉर्म तत्व पर और फिर इन चरणों को निरस्त करें।

  5. तो से submit() विधि ध्वज प्रस्तुत सेट नहीं है, तो fire a simple event कि बुलबुले और submit नामित रद्द करने योग्य है रूप पर,। यदि ईवेंट की डिफ़ॉल्ट कार्रवाई को रोका जाता है (यानी यदि ईवेंट रद्द कर दिया गया है) तो इन चरणों को निरस्त करें। अन्यथा, जारी रखें (प्रभावी ढंग से डिफ़ॉल्ट कार्रवाई सबमिशन करने के लिए है)।

  6. प्रपत्र डेटा सेट सबमिटर के संदर्भ में रूप के लिए constructing the form data set का नतीजा हो करते हैं।

  7. कार्रवाईसबमिटर तत्व के action बनें।

  8. तो कार्रवाई रिक्त स्ट्रिंग है, कार्रवाईप्रपत्र दस्तावेज़ की the document's address रहने दो।

  9. Resolve यूआरएल कार्रवाई, सबमिटर तत्व के सापेक्ष। यदि यह विफल रहता है, तो इन चरणों को रोक दें।

  10. कार्रवाई परिणामस्वरूप absolute URL हो।

  11. कार्रवाई घटक परिणामस्वरूप parsed URL हो।

  12. योजनाparsed URL के scheme होने दें।

  13. enctypeसबमिटर तत्व के enctype बनें।

  14. विधिसबमिटर तत्व के method बनें।

  15. लक्ष्यसबमिटर तत्व के target बनें।

  16. उपयोगकर्ता एक विशिष्ट browsing context जब पर्चे को जमा करने का उपयोग करने के संकेत दिया है, तो लक्ष्य ब्राउज़िंग संदर्भ होना कि browsing context करते हैं। अन्यथा, रूप लक्ष्य का उपयोग कर संदर्भ में एल्गोरिथ्म निष्पादित हो जाने के नाम और प्रपत्र ब्राउज़िंग संदर्भthe rules for choosing a browsing context given a browsing context name लागू होते हैं, और लक्ष्य ब्राउज़िंग संदर्भ browsing context जिसके परिणामस्वरूप हो करते हैं।

  17. तो लक्ष्य ब्राउज़िंग संदर्भ पिछले चरण में बनाया गया था, या वैकल्पिक रूप से, अगर प्रपत्र दस्तावेज़ अभी तक completely loaded नहीं है और submit() विधि से प्रस्तुत झंडा सेट है, तो की जगह जाने है सच हो। अन्यथा, यह झूठी होने दें।

  18. अन्यथा, प्रत्येक पंक्ति के पहले सेल द्वारा दिए गए योजना के मान के आधार पर नीचे दी गई तालिका में उपयुक्त पंक्ति का चयन करें। फिर, प्रत्येक कॉलम के पहले सेल में दिए गए विधि के मान के आधार पर उस पंक्ति पर उपयुक्त सेल का चयन करें। फिर, उस सेल में नामित चरणों पर जाएं और तालिका के नीचे परिभाषित करें।

      |  GET  |   POST 
    ------------------------------------------------------- 
    http  | Mutate action URL | Submit as entity body 
    https  | Mutate action URL | Submit as entity body 
    ftp  | Get action URL | Get action URL 
    javascript | Get action URL | Get action URL 
    data  | Get action URL | Post to data: 
    mailto  | Mail with headers | Mail as body 
    

    तो योजना इस तालिका में सूचीबद्ध उन में से एक नहीं है, तो व्यवहार इस विनिर्देशन द्वारा परिभाषित नहीं है। उपयोगकर्ता एजेंटों को में परिभाषित करने के लिए एक और विनिर्देश की अनुपस्थिति, तरीके से कार्य करें, जो समान योजनाओं के लिए इस विनिर्देश में परिभाषित हैं।

इसलिए, चरण 5 से, submit निकाल दिया जाता है, और फ़ॉर्म प्रविष्टि को रोकने के लिए रद्द कर दिया जा सकता है। कार्रवाई उसके बाद हल हो जाती है।

0

onsubmit प्रारूप आदि की जांच करने के लिए पहले निष्पादित किया गया है। फिर action को बैकएंड में डेटा प्राप्त करने/पोस्ट करने के लिए निष्पादित किया जाता है।

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