क्या आप html रूपों को घोंसला दे सकते हैं?


451

क्या इस तरह से html रूपों को घोंसला देना संभव है

<form name="mainForm">
  <form name="subForm">
  </form>
</form>

ताकि दोनों रूपों में काम हो? मेरे दोस्त को इसके साथ subFormकाम करने में परेशानी हो रही है , जबकि इसका एक और हिस्सा नहीं है।


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

1
लगता है कि वह जावास्क्रिप्ट का उपयोग करके बेहतर होगा कि मूल्यों को एक रूप से दूसरे रूप में कॉपी करें, बजाय उन्हें घोंसले के प्रयास करने के। मुझे नहीं लगता कि नेस्टिंग काम करेगी।
बेन

15
पुराना सवाल, लेकिन टिप्पणी का जवाब देने के लिए, जावास्क्रिप्ट से बचने के लिए घोंसले के शिकार के रूप आवश्यक हो सकते हैं। मैं इसके पार आ रहा हूं क्योंकि मैं सबफॉर्म "रीसेट" बटन के लिए घोंसला बनाना चाहता हूं, जिसके लिए जावास्क्रिप्ट को सक्षम करने की आवश्यकता नहीं है।
vol7ron

1
की संभावित डुप्लिकेट: stackoverflow.com/questions/597596/…
yankee

जवाबों:


459

एक शब्द में, नहीं। आपके पास एक पृष्ठ में कई रूप हो सकते हैं लेकिन वे नेस्टेड नहीं होने चाहिए।

से html5 काम मसौदा :

४.१०.३ formतत्व

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

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


126
मैं जवाब से सहमत हूं, लेकिन दूसरे से पूछने के लिए, क्यों नहीं? HTML नेस्टिंग फॉर्म के लिए अनुमति क्यों नहीं देता है? मेरे लिए, यह एक सीमा प्रतीत होती है कि हम इसके बिना बेहतर होंगे। ऐसे कई उदाहरण हैं जहां नेस्टेड फॉर्म का उपयोग करना आसान होगा (यानी एक प्रोफाइल एडिट फॉर्म के साथ अपलोड फोटो फॉर्म का उपयोग करके)।
रयान

20
@ निलज़ोर वह नहीं पूछ रहा है या नहीं किया जा सकता है, वह क्यों नहीं पूछ रहा है। मैं सहमत हूँ; घोंसले के शिकार रूपों वास्तव में उपयोगी है। इसलिए यदि आपके पास टैब के साथ एक पृष्ठ ऐप है, तो प्रत्येक टैब अपना स्वयं का रूप है (इसलिए आप इसे प्रगति को सहेजने के लिए सबमिट कर सकते हैं), और वे सभी एक फ़ॉर्म में लिपटे हुए हैं, जिसे आप सब कुछ सहेजने के लिए सबमिट कर सकते हैं। मेरी समझ मे आ रहा है।
रोब ग्रांट

5
मैं दूसरों की कही गई बातों से सहमत हूं। यह सीमा मनमानी और हानिकारक लगती है।
अरोल

12
इसलिए हमें नेस्टेड रूपों के साथ HTML 5.1 की आवश्यकता है।
हेक्टर

3
नेस्टेड प्रपत्रों के साथ समस्या HTML के भीतर रूप वास्तुकला है, जहां उस फॉर्म के भीतर कार्रवाई एक सबमिट इवेंट की ओर ले जाती है। प्रश्न बाल के बारे में मिलता है जिसे प्रस्तुत करने की आवश्यकता है। आपके पास एक फ़ॉर्म के भीतर कई फ़ील्ड हो सकते हैं, या एक div के भीतर कई रूप हो सकते हैं, लेकिन यह वास्तव में फ़ॉर्म के भीतर रूपों के होने का कोई मतलब नहीं है। यदि सामग्री एक साथ जाती है, तो यह सभी एक रूप है; यदि सामग्री अलग से सबमिट की जाती है, तो यह वास्तव में अलग-अलग रूप है, जिन्हें बाहरी रूप की आवश्यकता नहीं है।
काइल बेकर

96

मैं एक समान समस्या में भाग गया, और मुझे पता है कि सवाल का जवाब नहीं है, लेकिन इस तरह की समस्या से किसी को मदद मिल सकती है:
यदि किसी दिए गए अनुक्रम में दो या दो से अधिक रूपों के तत्वों को रखने की आवश्यकता है , HTML5 <input> form विशेषता समाधान हो सकता है।

से http://www.w3schools.com/tags/att_input_form.asp :

  1. HTML5 में फॉर्म की विशेषता नई है।
  2. निर्दिष्ट करता है कि <form>तत्व किस तत्व से <input>संबंधित है। इस विशेषता का मान <form>उसी दस्तावेज़ में एक तत्व का आईडी गुण होना चाहिए ।

परिदृश्य :

  • input_Form1_n1
  • input_Form2_n1
  • input_Form1_n2
  • input_Form2_n2

कार्यान्वयन :

<form id="Form1" action="Action1.php" method="post"></form>
<form id="Form2" action="Action2.php" method="post"></form>

<input type="text" name="input_Form1_n1" form="Form1" />
<input type="text" name="input_Form2_n1" form="Form2" />
<input type="text" name="input_Form1_n2" form="Form1" />
<input type="text" name="input_Form2_n2" form="Form2" />

<input type="submit" name="button1" value="buttonVal1" form="Form1" />
<input type="submit" name="button2" value="buttonVal2" form="Form2" />

यहां आपको ब्राउज़र की अनुकूलता मिलेगी।


1
यह बहुत अच्छा काम करता है! स्वीकृत उत्तर में शामिल होना चाहिए
नाह्तो

1
बस ब्राउज़र-सपोर्ट टेबल को इंगित करने के लिए: caniuse.com/#feat=form-attribute Resuming - यह IE को छोड़कर (Chrome, फ़ायरफ़ॉक्स, ओपेरा, ईगडे, सफारी, एंड्रॉइड ब्राउज़र ...) हर जगह काम करता है, IE को छोड़कर (नवीनतम द्वारा v11 सहित) ।
dikikam

@ क्लिफ-बर्टन, यहां क्या अंतर है? मैं फॉर्म के बाहर इनपुट देख सकता हूं। अभी भी जेएस को एक ही समय में दोनों फॉर्म जमा करने की आवश्यकता होगी। यह नहीं होगा?
sdlins

उह, पिछली बार जब मैंने इसका इस्तेमाल किया था तब से यह एक लंबा समय है लेकिन मुझे लगता है कि फॉर्म जमा करने के लिए जेएस की आवश्यकता नहीं है। बशर्ते कि <input type="submit"इसके साथ जुड़ा हुआ है <form>जो एक निर्दिष्ट करता है action, <input />(एस) उसी <form>से जुड़ा हुआ है जो उस अनुरोध में उपयोग किया जाएगा
क्लिफ बर्टन

90

दूसरे रूप को नजरअंदाज किया जाएगा, उदाहरण के लिए WebKit से स्निपेट देखें :

bool HTMLParser::formCreateErrorCheck(Token* t, RefPtr<Node>& result)
{
    // Only create a new form if we're not already inside one.
    // This is consistent with other browsers' behavior.
    if (!m_currentFormElement) {
        m_currentFormElement = new HTMLFormElement(formTag, m_document);
        result = m_currentFormElement;
        pCloserCreateErrorCheck(t, result);
    }
    return false;
}

43

सादा html आपको ऐसा करने की अनुमति नहीं दे सकता है। लेकिन जावास्क्रिप्ट के साथ आप ऐसा करने में सक्षम हो सकते हैं। यदि आप जावास्क्रिप्ट / jquery का उपयोग कर रहे हैं, तो आप अपने फॉर्म तत्वों को एक वर्ग के साथ वर्गीकृत कर सकते हैं और फिर उन चीजों के सबसेट के लिए केवल उन फॉर्म तत्वों को क्रमबद्ध करने के लिए क्रमबद्ध करें () का उपयोग करें जिन्हें आप सबमिट करना चाहते हैं।

<form id="formid">
    <input type="text" class="class1" />
    <input type="text" class="class2">
</form>

तब आपकी जावास्क्रिप्ट में आप class1 तत्वों को क्रमबद्ध करने के लिए ऐसा कर सकते थे

$(".class1").serialize();

Class2 के लिए आप कर सकते हैं

$(".class2").serialize();

पूरे फॉर्म के लिए

$("#formid").serialize();

या केवल

$("#formid").submit();

31

यदि आप AngularJS का उपयोग कर रहे हैं, तो <form>आपके अंदर के किसी भी टैग ng-appको रनटाइम पर प्रतिस्थापित किया जाता है, ngFormजो कि नेस्टेड होने के लिए डिज़ाइन किए गए निर्देशों के साथ हैं।

कोणीय रूपों में नेस्टेड किया जा सकता है। इसका मतलब यह है कि बाहरी रूप वैध है जब बच्चे के सभी रूप भी मान्य हैं। हालांकि, ब्राउज़र <form>तत्वों के घोंसले के शिकार की अनुमति नहीं देते हैं, इसलिए कोणीय ngFormनिर्देश प्रदान करता है जो पहचान के साथ व्यवहार करता है, <form>लेकिन घोंसले का शिकार हो सकता है। यह आपको नेस्टेड फॉर्म देने की अनुमति देता है, जो कि कोणीय सत्यापन निर्देशों का उपयोग करते समय बहुत उपयोगी होता है जो डायनेमिक रूप से ngRepeatनिर्देश का उपयोग करके उत्पन्न होता है । ( स्रोत )


यह वह उत्तर था जिसकी मुझे तलाश थी :) और हाँ यह घोंसले के रूप में समझ में आता है क्योंकि अगर आपके पास कई टैब हैं लेकिन आप सिर्फ एक टैब पर सत्यापन करना चाहते हैं, तो नेस्टेड फॉर्म के साथ आप ऐसा कर सकते हैं।
NeverGiveUp161

क्या यह वेबकंप्यूटरों के लिए समान है?
गंगाधर JANNU

31

जैसा कि 2019 है, मैं इस प्रश्न का अद्यतन उत्तर देना चाहूंगा। घोंसले के रूपों के समान परिणाम प्राप्त करना संभव है, लेकिन उन्हें घोंसले के शिकार के बिना। HTML5 ने प्रपत्र विशेषता पेश की। आप प्रपत्र विशेषता को प्रपत्र के बाहर नियंत्रणों को एक विशिष्ट प्रपत्र तत्व (आईडी द्वारा) से जोड़ने के लिए जोड़ सकते हैं।

https://www.impressivewebs.com/html5-form-attribute/

इस तरह से आप अपने html को इस तरह से स्ट्रक्चर कर सकते हैं:

<form id="main-form" action="/main-action" method="post"></form>
<form id="sub-form"  action="/sub-action"  method="post"></form>

<div class="main-component">
    <input type="text" name="main-property1" form="main-form" />
    <input type="text" name="main-property2" form="main-form" />

    <div class="sub-component">
        <input type="text" name="sub-property1" form="sub-form" />
        <input type="text" name="sub-property2" form="sub-form" />
        <input type="submit" name="sub-save" value="Save" form="sub-form" />
    </div>

    <input type="submit" name="main-save" value="Save" form="main-form" />
</div>

प्रपत्र विशेषता सभी आधुनिक ब्राउज़रों द्वारा समर्थित है। IE हालांकि इसका समर्थन नहीं करता है, लेकिन IE अब एक ब्राउज़र नहीं है, बल्कि एक संगतता उपकरण है, जैसा कि स्वयं Microsoft द्वारा पुष्टि की गई है: https://www.zdnet.com/article/microsoft-security-chief-ie-is-not-a -Browser-so-stop-use-it-as-your-default / । यह समय है जब हम IE में काम करने के बारे में देखभाल करना बंद कर देते हैं।

https://caniuse.com/#feat=form-attribute
https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fae-form

HTML युक्ति से:

यह सुविधा लेखकों को नेस्टेड फॉर्म तत्वों के समर्थन की कमी के आसपास काम करने की अनुमति देती है।


यहाँ क्या अंतर है? मैं फॉर्म के बाहर इनपुट देख सकता हूं। अभी भी जेएस को एक ही समय में दोनों फॉर्म जमा करने की आवश्यकता होगी। यह नहीं होगा?
sdlins

@ sdlins नहीं, विचार मुख्य घटक और उप-घटक को स्टाइल करने का है कि आप उन्हें कैसे देखना चाहते हैं, नेस्टेड। वास्तविक 2 फ़ॉर्म टैग अदृश्य होंगे। प्रत्येक सबमिट बटन ट्रिगर होगा यह संबंधित प्रपत्र सबमिट है। किसी भी जावास्क्रिप्ट की आवश्यकता नहीं है।
क्रिएटिव

यदि आप केवल एक या दूसरे रूप को ट्रिगर करना चाहते हैं , ठीक है। लेकिन यह कैसे हल होगा जब आपको & quot; माता-पिता & quot; फार्म के साथ अपने बच्चे रूपों के रूप में यह एक और जे एस के बिना किया गया था?
sdlins

@ sdlins कि यह सवाल क्या है के बारे में नहीं है। सवाल 2 अलग-अलग रूपों के बारे में है, लेकिन क्या उन्हें नेस्टेड है। मैं सोच रहा हूं कि आप 2 फ़ॉर्म क्यों चाहते हैं, लेकिन फिर भी 1 फ़ंक्शन सबमिट करें? क्या आपके पास अभी 1 फॉर्म नहीं है? आपको वास्तव में कुछ के लिए जावास्क्रिप्ट का सहारा लेना होगा जैसा कि अजीब है: पी
क्रिएटिव

हाँ, आप सही हैं, कि ओपी सवाल नहीं है। मैं अपनी पोस्ट करूंगा। धन्यवाद!
sdlins

12

इस समस्या को हल करने का एक और तरीका है, यदि आप कुछ सर्वर साइड स्क्रिप्टिंग भाषा का उपयोग कर रहे हैं जो आपको पोस्ट किए गए डेटा में हेरफेर करने की अनुमति देता है, तो अपने HTML फॉर्म को इस तरह घोषित करना है:

<form>
<input name="a_name"/>
<input name="a_second_name"/>
<input name="subform[another_name]"/>
<input name="subform[another_second_name]"/>
</form>

यदि आप पोस्ट किए गए डेटा को प्रिंट करते हैं (मैं यहां PHP का उपयोग करूंगा), तो आपको इस तरह की एक सरणी मिलेगी:

//print_r($_POST) will output :
    array(
    'a_name' => 'a_name_value',
    'a_second_name' => 'a_second_name_value',
    'subform' => array(
      'another_name' => 'a_name_value',
      'another_second_name' => 'another_second_name_value',
      ),
    );

तो आप बस कुछ ऐसा कर सकते हैं:

$my_sub_form_data = $_POST['subform'];
unset($_POST['subform']);

आपके $ _POST में अब केवल आपका "मुख्य फ़ॉर्म" डेटा है, और आपका सबफ़ॉर्म डेटा किसी अन्य चर में संग्रहीत है जिसे आप अपनी इच्छानुसार हेरफेर कर सकते हैं।

उम्मीद है की यह मदद करेगा!


11

जैसा कि क्रेग ने कहा, नहीं।

लेकिन, आपकी टिप्पणी के बारे में क्यों :

<form>इनपुट और "अपडेट" बटन के साथ 1 का उपयोग करना आसान हो सकता है , और दूसरे में "ऑर्डर सबमिट करें" बटन के साथ कॉपी छिपे हुए इनपुट का उपयोग करना आसान हो सकता है <form>


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

9

ध्यान दें कि आपको FORM तत्वों को घोंसला बनाने की अनुमति नहीं है!

http://www.w3.org/MarkUp/html3/forms.html

https://www.w3.org/TR/html4/appendix/changes.html#hA.3.9 (html4 विनिर्देशन नोटों के घोंसले के रूपों के बारे में 3.2 से 4 में कोई बदलाव नहीं करता है)

https://www.w3.org/TR/html4/appendix/changes.html#hA.1.1.12 (html4 विनिर्देशन नोटों के घोंसले के रूपों में 4.0 से 4.1 के बीच कोई बदलाव नहीं करता है)

https://www.w3.org/TR/html5-diff/ (html5 विनिर्देशन नोट 4 से 5 तक घोंसले के रूपों के बारे में कोई बदलाव नहीं करता है)

https://www.w3.org/TR/html5/forms.html#association-of-controls-and-forms टिप्पणी "यह सुविधा लेखकों को नेस्टेड फॉर्म तत्वों के लिए समर्थन की कमी के आसपास काम करने की अनुमति देती है।", लेकिन करता है। यह निर्दिष्ट नहीं है कि यह कहां है, मुझे लगता है कि वे मान रहे हैं कि हमें यह मान लेना चाहिए कि यह html3 विनिर्देशन में निर्दिष्ट है :)


23
मुझे नहीं पता कि आप ऐसे प्रश्न पर क्यों पोस्ट करेंगे जिसका उत्तर 3 और डेढ़ साल में दिया गया है, लेकिन अधिक समस्याग्रस्त HTML3 से लिंक हो रहा है जो लंबे समय से सिफारिश नहीं है।
ऐदिपकपी

7
यह एक सन्दर्भ है कि कब तक अंतर्निहित प्रश्न का उत्तर दिया गया है, जिसे मैं रचनात्मक मानता था। इसके अलावा, मैंने पाया कि आपको "FORM तत्वों को घोंसला बनाने की अनुमति नहीं है!" विनोद होने की युक्ति के भीतर।
मार्क पीटरसन

1
यह एक समस्या है क्योंकि मुझे एक एपीआई डालना है जो कि एक फॉर्म है और क्योंकि .net ऐप (जो हर चीज़ के चारों ओर <फॉर्म> टैग लपेटता है)। आप इस मुद्दे को कैसे दूर करेंगे।
jelly46

4

एक सरल वर्कअराउंड "नेस्टेड" फॉर्म को रखने के लिए एक iframe का उपयोग करना है। नेत्रहीन रूप से नेस्टेड है, लेकिन कोड की तरफ एक अलग HTML फ़ाइल में पूरी तरह से।



3

आप बटन टैग के अंदर फ़ॉर्मेशन = "" का भी उपयोग कर सकते हैं।

<button type="submit" formaction="/rmDog" method='post' id="rmDog">-</button>

यह एक अलग बटन के रूप में मूल रूप में नेस्टेड होगा।


इस सवाल का जवाब नहीं है, लेकिन यह सिर्फ मुझे एक और समस्या का समाधान करने में मदद करता है जो मुझे दे रहा था
codeAndStuff

ऊपर अनदेखा करें (5 मिनट के बाद मुझे संपादित नहीं करने देंगे ... हम्म)। यहाँ बड़ी मदद - जो मैं आज सुबह करने का प्रयास कर रहा था, उस पर पूरी तरह से मैप किया गया। यही कारण है कि हम सभी SO
codeAndStuff

2

यहां तक ​​कि अगर आप इसे एक ब्राउज़र में काम करने के लिए प्राप्त कर सकते हैं, तो भी कोई गारंटी नहीं है कि यह सभी ब्राउज़रों में समान काम करेगा। तो यह काम करने के लिए, जबकि आप प्राप्त करने में सक्षम हो सकता है कुछ समय की है, तो आप निश्चित रूप से यह काम करने के लिए प्राप्त करने में सक्षम नहीं होगा सब समय की।


2

आपको एक ही ब्राउज़र के विभिन्न संस्करणों में काम करने में भी समस्या होगी। इसलिए इसके इस्तेमाल से बचें।


2

हालांकि मैं नेस्टेड रूपों का समाधान प्रस्तुत नहीं करता (यह मज़बूती से काम नहीं करता है), मैं एक समाधान प्रस्तुत करता हूं जो मेरे लिए काम करता है:

उपयोग परिदृश्य: एक सुपरफॉर्म एक बार में एन आइटम को बदलने की अनुमति देता है। इसके निचले हिस्से में "सब सबमिट करें" बटन है। प्रत्येक आइटम "सबमिट आइटम # एन" बटन के साथ अपना स्वयं का नेस्टेड रूप रखना चाहता है। लेकिन नहीं कर सकते ...

इस स्थिति में, कोई भी वास्तव में एकल फ़ॉर्म का उपयोग कर सकता है, और फिर बटन का नाम हो सकता है submit_1.. submit_Nऔर submitAllसर्वर-साइड को संभालना चाहिए, केवल _1बटन के नाम पर समाप्त होने वाले पैराम्स को देखकर submit_1

<form>
    <div id="item1">
        <input type="text" name="foo_1" value="23">
        <input type="submit" name="submit_1" value="Submit Item #1">
    </div>
    <div id="item2">
        <input type="text" name="foo_2" value="33">
        <input type="submit" name="submit_2" value="Submit Item #2">
    </div>
    <input type="submit" name="submitAll" value="Submit All Items">
</form>

ठीक है, तो एक आविष्कार के बहुत नहीं, लेकिन यह काम करता है।


1

घोंसले के शिकार रूपों के बारे में: मैंने एक दोपहर में 10 साल बिताए, जो एक अजाक्स स्क्रिप्ट को डिबग करने की कोशिश कर रहा था।

मेरे पिछले जवाब / उदाहरण html मार्कअप के लिए खाता नहीं था, क्षमा करें।

<form id='form_1' et al>
  <input stuff>
  <submit onClick='ajaxFunction(That_Puts_form_2_In_The_ajaxContainer)' >
  <td id='ajaxContainer></td>
</form>

form_2 लगातार अमान्य form_2 कहकर विफल रहा।

जब मैंने ajaxContainer को स्थानांतरित किया, जिसने form_1 के form_2 का उत्पादन किया <i>outside</i>, तो मैं व्यवसाय में वापस आ गया। यह इस सवाल का जवाब देता है कि कोई घोंसला क्यों बना सकता है। मेरा मतलब है, वास्तव में, क्या आईडी है अगर परिभाषित नहीं करना है कि किस फॉर्म का उपयोग किया जाना है? चारों ओर एक बेहतर, सुस्त काम होना चाहिए।


1

अपने नेस्टेड फॉर्म से पहले खाली फॉर्म टैग का उपयोग करें

परीक्षण किया और फ़ायरफ़ॉक्स, क्रोम पर काम किया

आईई पर परीक्षण नहीं किया गया

<form name="mainForm" action="mainAction">
  <form></form>
  <form name="subForm"  action="subAction">
  </form>
</form>

जब मैंने इसे क्रोम पर आज़माया तो यह इस <form name = "mainForm"> </ form> <form name = "subForm"> </ form>
ianace

1
क्या आपने सबमिट बटन के साथ प्रयास किया था। मैंने इस विधि का कई बार उपयोग किया है और हमेशा काम किया है।
फतह

10
यह विनिर्देश का उल्लंघन है और इसका उपयोग भविष्य की समस्याओं के लिए भीख माँग रहा है।
Oskar Berggren

नए वेबकिट संस्करण केवल नेस्टेड रूप तत्वों को निकालते हैं।
woens

0

हालाँकि यह प्रश्न बहुत पुराना है और मैं @everyone से सहमत हूं कि HTML में फ़ॉर्म के नेस्टिंग की अनुमति नहीं है

लेकिन यह सब कुछ यह देखना चाहते हो सकता है

जहां आप हैक कर सकते हैं (मैं इसे हैक कह रहा हूं क्योंकि मुझे यकीन है कि यह वैध नहीं है) html ब्राउज़र को नेस्टेड फॉर्म देने की अनुमति देता है

<form id="form_one" action="http://apple.com">
  <div>
    <div>
        <form id="form_two" action="/">
            <!-- DUMMY FORM TO ALLOW BROWSER TO ACCEPT NESTED FORM -->
      </form>
    </div>
      <br/>
    <div>
      <form id="form_three" action="http://www.linuxtopia.org/">
          <input type='submit' value='LINUX TOPIA'/>
      </form>
    </div>
      <br/>

    <div>
      <form id="form_four" action="http://bing.com">
          <input type='submit' value='BING'/>
      </form>
    </div>
      <br/>  
    <input type='submit' value='Apple'/>
  </div>  
</form>

JS FIDDLE लिंक

http://jsfiddle.net/nzkEw/10/


0

नहीं, आपके पास नेस्टेड फॉर्म नहीं हो सकता है। इसके बजाय आप एक ऐसा मोडल खोल सकते हैं जिसमें फॉर्म हो और अजाक्स फॉर्म सबमिट करें।


0

वास्तव में संभव नहीं ... मैं प्रपत्र टैग नहीं कर सका ... हालाँकि मैंने इस कोड का उपयोग किया है:

<form>
    OTHER FORM STUFF

    <div novalidate role="form" method="post" id="fake_form_id_0" data-url="YOUR_POST_URL">
        THIS FORM STUFF
    </div>
</form>

{% csrf_token %}और सामान के साथ

और कुछ JS लागू किया

var url = $(form_id).attr("data-url");

$.ajax({
  url: url,
  "type": "POST",
   "data": {
    'csrfmiddlewaretoken': '{{ csrf_token }}',
    'custom-param-attachment': 'value'
  },
  success: function (e, data) {
      if (e.is_valid) {
         DO STUFF
      }
  }
});

-1

आज, मैं भी उसी मुद्दे में फंस गया हूं, और उस समस्या को हल कर रहा हूं जिसे मैंने एक उपयोगकर्ता नियंत्रण जोड़ा है और
इस नियंत्रण पर मैं इस कोड का उपयोग करता हूं

<div class="divformTagEx">

</div>

<asp:Literal runat="server" ID="litFormTag" Visible="false">
'<div> <form  style="margin-bottom: 3;" action="http://login.php" method="post" name="testformtag"></form> </div>'</asp:Literal>

और पृष्ठ की PreRenderComplete घटना पर इस पद्धति को कॉल करें

private void InitializeJavaScript()
{
        var script = new StringBuilder();
        script.Append("$(document).ready(function () {");
        script.Append("$('.divformTagEx').append( ");
        script.Append(litFormTag.Text);
        script.Append(" )");
        script.Append(" });");
        ScriptManager.RegisterStartupScript(this, GetType(), "nestedFormTagEx", script.ToString(), true);
    }

मुझे विश्वास है कि इससे मदद मिलेगी।


-1

इससे पहले कि मैं जानता था कि मैं ऐसा करने वाला नहीं था, मेरे पास कई सबमिट बटन होने के उद्देश्य से नेस्टेड फॉर्म थे। 18 महीने के लिए उस तरह से भाग गया, हजारों साइनअप लेनदेन, किसी ने हमें किसी भी कठिनाइयों के बारे में नहीं बुलाया।

नेस्टेड फॉर्म ने मुझे सही कार्रवाई के लिए पार्स करने के लिए एक आईडी दी। ब्रेक नहीं किया 'til मैंने बटन के एक क्षेत्र को संलग्न करने की कोशिश की और शिकायत की। इसे अछूता करने के लिए कोई बड़ी बात नहीं थी - मैंने बाहरी रूप पर एक स्पष्ट कड़ाई का इस्तेमाल किया, इसलिए यह सबमिट और फॉर्म से मेल नहीं खाता। हाँ, हाँ, एक सबमिट से बटन को एक ऑन्क्लिक पर ले जाना चाहिए।

बिंदु ऐसी परिस्थितियां हैं जहां यह पूरी तरह से टूटी हुई नहीं है। लेकिन "पूरी तरह से नहीं टूटा" शायद शूटिंग के लिए एक मानक बहुत कम है :-)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.