2010-12-23 10 views
10

क्या मैं <form> टैग को अन्य <form> टैग के अंदर डाल सकता हूं?क्या मैं अन्य फॉर्म टैग में फॉर्म टैग घोंसला कर सकता हूं?

उदाहरण के लिए:

<form> 
    <form> 
    </form> 
</form> 
+1

आप एक ऐसा फ़ॉर्म तत्व ;-) –

+0

फिर मेरा मतलब प्रपत्र टैग, धन्यवाद मुझे मिल गया के – Navruk

+0

संभव डुप्लिकेट का जवाब मतलब http://stackoverflow.com [यह वैध एक और एचटीएमएल प्रपत्र के अंदर एक एचटीएमएल विधि होनी है?] (/ प्रश्न/555928/यह-वैध-टू-ए-एचटीएमएल-फॉर्म-अंदर-एक-एचटीएमएल-फॉर्म) –

उत्तर

17

नहीं है, नेस्टेड रूपों निषिद्ध हैं।


यह 4.01 DTDs HTML में व्यक्त किया जाता है के रूप में:

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form --> 

- http://www.w3.org/TR/html4/interact/forms.html#h-17.3

इसका मतलब यह है एक फार्म एक अनिवार्य स्टार्ट टैग, अनिवार्य अंत टैग है और कुछ भी शामिल कर सकते हैं अन्य ब्लॉक को छोड़कर,% ब्लॉक या एससीआरआईपीटी में।


XML DTDs, तो एक्सएचटीएमएल में यह नियम केवल विनिर्देश के मानव पठनीय पाठ में निर्दिष्ट किया जाता, SGML DTDs के रूप में के रूप में अर्थपूर्ण नहीं हैं:

प्रपत्र अन्य रूप तत्वों शामिल नहीं करना चाहिए ।

- http://www.w3.org/TR/xhtml1/#prohibitions


एचटीएमएल 5 एक SGML आवेदन नहीं है और आधिकारिक भाषा के एक मशीन पठनीय वर्णन न हो।

सामग्री मॉडल:

प्रवाह सामग्री है, लेकिन कोई प्रपत्र तत्व वंश के साथ यह भी पाठ में इस नियम को व्यक्त करता है।

- http://www.w3.org/TR/html5/forms.html#the-form-element

+0

आपके उत्तर के लिए धन्यवाद। – Navruk

0

नहीं है, <fieldset> उपयोग करें यदि आप अपने रूपों विभाजित करना चाहते हैं। कुछ ब्राउज़र इसे पार्स करने में सक्षम हो सकते हैं (इसका परीक्षण नहीं किया गया) लेकिन डब्ल्यू 3 मानक के अनुसार इसे अन्य रूपों के रूप में फॉर्मों का उपयोग करने की अनुमति नहीं है।

+0

आपके उत्तर के लिए धन्यवाद – Navruk

+0

इसे कुछ विस्तार की आवश्यकता है ... – Cerin

1

विनिर्देश के अनुसार नेस्टेड फॉर्मों की अनुमति नहीं है (मुझे यकीन नहीं है कि प्रयास किए जाने पर व्यवहार क्या होगा, मैंने कोशिश नहीं की है)।

हालांकि, a previous question में विषय की कुछ रोचक चर्चा है।

+0

आपके उत्तर के लिए धन्यवाद – Navruk

1

आप उन्हें घोंसला नहीं दे सकते हैं, लेकिन आप तत्वों को समूहित कर सकते हैं ... विशेष रूप से इस के लिए एक तंत्र है, the <fieldset> element, समूह नियंत्रण/लेबल के लिए उपयोग किया जाता है ... और एचटीएमएल 5 में इसे विशिष्ट रूपों, सामग्री अक्षम, आदि से संबद्ध करता है।

+0

आपके उत्तर के लिए धन्यवाद – Navruk

0

एक्सएचटीएमएल 1.0 सख्त के साथ ठीक काम करता है।

मैंने नीचे http://validator.w3.org/check में चिपकाकर सत्यापन का भी परीक्षण किया।

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title>Markup Test</title> 
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> 
    </head> 
    <body> 
    <h1>Markup Test</h1> 
    <p> 
     This doc contains a form with a nested form and validates at 
     <a title="Validate using W3C Markup Validation Service" href="http://validator.w3.org/check?uri=referer"> 
     http://validator.w3.org/ 
     </a> 
    </p> 
    <form action="#"> 
     <div> 
     <form action="#"> 
     </form> 
     </div> 
    </form> 
    </body> 
</html> 

हालांकि नीचे क्वेंटिन सही है: मैं परीक्षण किया है और नेस्टेड प्रपत्र खोलने और समापन टैग अनदेखी कर रहे हैं। बच्चे के फॉर्म टैग के पहले, अंदर और उसके बाद दिखाई देने वाले फॉर्म इनपुट तत्वों को सबमिट बटन सहित मूल रूप के सदस्यों के रूप में माना जाता है। बच्चे के रूप में this.form के जावास्क्रिप्ट संदर्भ मूल रूप से संदर्भित करते हैं। यदि आप बच्चे को एक आईडी बनाते हैं और इसे getElementById के माध्यम से पुनर्प्राप्त करते हैं तो आपको एक तत्व मिलता है लेकिन .submit() कुछ भी नहीं करता है। इसका मूल रूप से एक रूप (पैरेंट) इसमें कचरा टैग के साथ।

+0

यह * मान्य * है लेकिन ** ** की अनुमति नहीं है। एक्सएमएल डीटीडी एसजीएमएल डीटीडी के रूप में अभिव्यक्तिपूर्ण नहीं हैं, इसलिए आप सत्यापनकर्ता को समझने के तरीके में "नो नेस्टेड गठित" व्यक्त नहीं कर सकते हैं। [एलिमेंट प्रोहिबिशन] देखें (http://www.w3.org/TR/xhtml1/#prohibitions): * फ़ॉर्म में अन्य फॉर्म तत्व नहीं होना चाहिए * – Quentin

-1

सीधे फॉर्म के भीतर अनुमति नहीं है। आपकी सभी जावास्क्रिप्ट काम नहीं करेगी और इरादा व्यवहार वहां नहीं होगा।

लेकिन, आप यह कोशिश कर सकते हैं:

<form name ="1st form"> 
<...> 
<div> <form id="dummy"></form></div> 
<...> 
<form name = "2nd form"> 
</form> 
<...> 
</form> 

आप 2 रूपों आप उपयोग करना चाहते के बीच में एक डमी प्रपत्र बनाने की आवश्यकता होगी। सावधानी के 1 नोट, पहला फॉर्म और डमी फॉर्म में उनके बीच कुछ टैग होने की आवश्यकता होगी। अन्यथा यह काम नहीं करेगा।

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