আপনি কি এইচটিএমএল ফর্মগুলি বাসাতে পারেন?


451

এই জাতীয় এইচটিএমএল ফর্মগুলি বাসা বাঁধাই কি সম্ভব?

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

যাতে উভয় ফর্ম কাজ করে? আমার বন্ধুটির subFormকাজগুলির একটি অংশ এটির সাথে সমস্যা করছে, যদিও এর অন্য অংশটি তা করে না।


তিনি একটি কার্ট স্থাপন করছেন, যেখানে আপডেটের পরিমাণটি ফর্মটির অভ্যন্তরে রয়েছে যা মোটের খোঁজ রাখে। আমি ব্যক্তিগতভাবে এটি করতাম না, তবে সে কাজ করতে গিয়ে সমস্যা তৈরি করছে।
লেভি

1
মনে হচ্ছে জাভাস্ক্রিপ্ট ব্যবহার করে বাসা বাঁধার চেষ্টা না করে এক ফর্ম থেকে অন্য ফর্মটি অনুলিপি করতে আরও ভাল হবে। আমি মনে করি না বাসা বাঁধে কাজ করবে।
বেন

15
পুরানো প্রশ্ন, তবে মন্তব্যের উত্তর দেওয়ার জন্য, জাভাস্ক্রিপ্ট এড়ানোর জন্য নেস্টিং ফর্মগুলি প্রয়োজনীয় হতে পারে। আমি এটি জুড়ে আসছি কারণ আমি সাবফর্ম "রিসেট" বোতামগুলির জন্য নীড়ের ফর্মগুলি চাই, যার জন্য জাভাস্ক্রিপ্ট সক্ষম করার প্রয়োজন নেই।
ভোলআরন

1
এর সম্ভাব্য সদৃশ: স্ট্যাকওভারফ্লো.com
ইয়াঙ্কি

উত্তর:


459

এক কথায়, না। আপনার একটি পৃষ্ঠায় বেশ কয়েকটি ফর্ম থাকতে পারে তবে সেগুলি বাসা বাঁধে না।

থেকে HTML5 পরিশ্রমী খসড়া :

4.10.3 formউপাদান

সামগ্রী মডেল:

প্রবাহিত সামগ্রী, তবে কোনও ফর্ম উপাদান বংশধর নেই।


126
আমি উত্তরটির সাথে একমত, কিন্তু অন্যকে জিজ্ঞাসা করতে, কেন নয়? এইচটিএমএল কেন বাসা বাঁধার ফর্মগুলির অনুমতি দেয় না? আমার কাছে, এটি এমন একটি সীমাবদ্ধতা বলে মনে হয় যা আমরা ছাড়া ভাল থাকব। অনেকগুলি উদাহরণ রয়েছে যেখানে নেস্টেড ফর্মগুলি ব্যবহার করা প্রোগ্রাম করা আরও সহজ হবে (যেমন প্রোফাইল সম্পাদনা ফর্মের সাথে একটি আপলোড ফটো ফর্ম ব্যবহার করে) using
রায়ান

20
@ নীলজর জিজ্ঞাসা করছেন না এটি করা যায় কি না, তিনি কেন জিজ্ঞাসা করছেন? আমি রাজী; বাসা বাঁধার ফর্মগুলি আসলেই দরকারী। সুতরাং আপনার যদি ট্যাবগুলির সাথে একটি পৃষ্ঠার অ্যাপ থাকে তবে প্রতিটি ট্যাব এর নিজস্ব ফর্ম (যাতে আপনি এটি অগ্রগতি বাঁচাতে জমা দিতে পারেন), এবং সেগুলি সমস্ত ফর্মটিতে আবৃত থাকে, যা আপনি সমস্ত কিছু সংরক্ষণ করতে জমা দিতে পারেন can আমার কাছে যৌক্তিক.
রব গ্রান্ট

5
অন্যরা যা বলেছে তাতে আমি একমত এই সীমাবদ্ধতা নির্বিচারে এবং ক্ষতিকারক বলে মনে হচ্ছে।
আরথ

12
সুতরাং নেস্টেড ফর্ম সহ আমাদের এইচটিএমএল 5.1 প্রয়োজন।
হেক্টর

3
নেস্টেড ফর্মগুলির সমস্যা হ'ল এইচটিএমএল-র মধ্যে ফর্ম আর্কিটেকচার, যেখানে এই ফর্মের মধ্যে ক্রিয়াটি একটি জমা দেওয়ার ইভেন্টে পরিচালিত করে। কী জমা দিতে হবে তা নিয়ে প্রশ্ন চুল পড়ে। কোনও ফর্মের মধ্যে আপনার বেশ কয়েকটি ক্ষেত্র থাকতে পারে, বা একটি ডিভের মধ্যে বেশ কয়েকটি ফর্ম থাকতে পারে তবে কোনও ফর্মের মধ্যে ফর্মগুলি থাকা সত্যিকার অর্থে তা বোঝায় না। যদি বিষয়বস্তু একসাথে যায় তবে এগুলি সবই একরকম; যদি বিষয়বস্তু পৃথকভাবে জমা দেওয়া হয় তবে এটি সত্যই পৃথক ফর্ম যা বাইরের ফর্মের প্রয়োজন হয় না।
কাইল বেকার

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=for-attribute পুনরায় শুরু করা - এটি আইই বাদে সর্বত্র (ক্রোম, ফায়ারফক্স, অপেরা, ডিম, সাফারি, অ্যান্ড্রয়েড ব্রাউজার ...) কাজ করে ( এখনকার উইন্ডো সহ সাম্প্রতিকতম) ।
dmikam

@ ক্লিফ-বার্টন, এখানে পার্থক্য কী? আমি কেবল ফর্মের বাইরের ইনপুটগুলি দেখতে পাচ্ছি। এটি একই সাথে উভয় ফর্ম জমা দেওয়ার জন্য জেএসের প্রয়োজন হবে। তাই না?
sdlins

উহ, গতবার থেকে এটি ব্যবহার করার পরে অনেক দিন হয়েছে তবে আমি মনে করি ফর্ম জমা দেওয়ার জন্য জেএসের দরকার নেই। প্রদত্ত যে <input type="submit"এটির সাথে লিঙ্কযুক্ত <form>যা একটি নির্দিষ্ট করে action, <input />সেইগুলির সাথে লিঙ্কযুক্ত (গুলি) <form>সেই অনুরোধে ব্যবহৃত হবে
ক্লিফ বার্টন

90

দ্বিতীয় ফর্মটি উপেক্ষা করা হবে, উদাহরণস্বরূপ ওয়েবকিট থেকে স্নিপেট দেখুন :

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

সাধারণ এইচটিএমএল আপনাকে এটি করার অনুমতি দিতে পারে না। তবে জাভাস্ক্রিপ্টের সাহায্যে আপনি এটি করতে সক্ষম হবেন। আপনি যদি জাভাস্ক্রিপ্ট / jquery ব্যবহার করে থাকেন তবে আপনি নিজের ফর্ম উপাদানগুলি একটি শ্রেণীর সাথে শ্রেণিবদ্ধ করতে পারেন এবং তারপরে আপনার জমা দিতে চান এমন আইটেমগুলির সাবসেটের জন্য কেবল সেই ফর্ম উপাদানগুলিকেই সিরিয়ালাইজ করতে সিরিয়ালাইজ () ব্যবহার করতে পারেন।

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

তারপরে আপনার জাভাস্ক্রিপ্টে আপনি ক্লাস 1 উপাদানগুলি ক্রমিক করতে এটি করতে পারেন

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

Class2 এর জন্য আপনি করতে পারেন

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

পুরো ফর্ম জন্য

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

বা সহজভাবে

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

31

যদি আপনি অ্যাংুলারজেএস ব্যবহার করে থাকেন তবে আপনার <form>অভ্যন্তরের কোনও ট্যাগ ng-appরানটাইমে ngFormনেস্ট করার জন্য নকশাকৃত নির্দেশাবলীর সাথে প্রতিস্থাপন করা হবে।

কৌনিক আকারে বাসা বাঁধতে পারে। এর অর্থ হ'ল বাইরের ফর্মটি বৈধ হয় যখন সমস্ত শিশু ফর্মও বৈধ হয়। যাইহোক, ব্রাউজারগুলি <form>উপাদানগুলির বাসা বাঁধার অনুমতি দেয় না , সুতরাং কৌণিক একটি ngFormনির্দেশনা সরবরাহ করে যা অনুরূপ আচরণ করে তবে বাসা <form>বেঁধে দেওয়া যায়। এটি আপনাকে নেস্টেড ফর্মগুলি রাখার অনুমতি দেয় যা ডায়রেক্টিভের সাহায্যে গতিশীলভাবে উত্পাদিত ফর্মগুলিতে কৌনিক বৈধতা নির্দেশাবলী ব্যবহার করার সময় খুব কার্যকর ngRepeat। ( উত্স )


আমি উত্তরটি খুঁজছিলাম এটিই ছিল :) এবং হ্যাঁ এটি নীড় ফর্মটি বোঝায় কিন্তু কারণ যদি আপনার একাধিক ট্যাব থাকে তবে আপনি কেবল একটি ট্যাবে বৈধতা প্রদর্শন করতে চান তবে নীড়যুক্ত ফর্মের সাহায্যে আপনি এটি করতে পারেন।
নেভারজিভআপ 161

এটি কি ওয়েব কম্পোনেন্টগুলির জন্য একই?
গঙ্গাধর জেএনএএনইউ

31

২০১২ সালের হিসাবে আমি এই প্রশ্নের একটি আপডেট উত্তর দিতে চাই। নেস্টেড ফর্মগুলির মতো একই ফলাফল অর্জন করা সম্ভব তবে তাদের বাসা ছাড়াই। এইচটিএমএল 5 ফর্মের বৈশিষ্ট্যটি প্রবর্তন করেছে। নির্দিষ্ট ফর্ম উপাদান (আইডি দ্বারা) এর সাথে লিঙ্ক করতে আপনি ফর্মের বাইরে ফর্ম নিয়ন্ত্রণগুলিতে ফর্ম বৈশিষ্ট্য যুক্ত করতে পারেন।

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

আপনি এইভাবে আপনার এইচটিএমএল গঠন করতে পারেন:

<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>

ফর্ম বৈশিষ্ট্যটি সমস্ত আধুনিক ব্রাউজার দ্বারা সমর্থিত। আইই এটি সমর্থন করে না তবে আইই আর ব্রাউজার নয়, বরং এটি একটি সামঞ্জস্যের সরঞ্জাম, যেমন মাইক্রোসফ্ট নিজেই নিশ্চিত করেছে: https://www.zdnet.com/article/microsoft-security-chief-ie-is-not-a আপনার ব্রাউজার-হিসাবে-ব্রাউজারটি-তাই-বন্ধ-এটি-ব্যবহার-বন্ধ করুন । আমরা IE এ জিনিসগুলি তৈরির বিষয়ে যত্ন নেওয়া বন্ধ করার প্রায় সময়।

https://caniuse.com/#feat=form-attribute https://html.spec.whatwg.org/multipage/form-control-inf بُ. h ার. html# attr- fae-
form

এইচটিএমএল স্পেস থেকে:

এই বৈশিষ্ট্যটি লেখককে নেস্টেড ফর্ম উপাদানগুলির সমর্থনের অভাবকে ঘিরে কাজ করার অনুমতি দেয়।


এখানে পার্থক্য কি? আমি কেবল ফর্মের বাইরের ইনপুটগুলি দেখতে পাচ্ছি। এটি একই সাথে উভয় ফর্ম জমা দেওয়ার জন্য জেএসের প্রয়োজন হবে। তাই না?
এসডলিন্স

@ এসডলিন্স না, ধারণাটি হ'ল মূল উপাদান এবং উপ-উপাদানকে আপনি কীভাবে বাসা বাঁধতে চান সেভাবে স্টাইল করা। প্রকৃত 2 ফর্ম ট্যাগগুলি অদৃশ্য হবে। প্রতিটি জমা বাটন এটি সম্পর্কিত ফর্ম জমা ট্রিগার করবে। কোনও জাভাস্ক্রিপ্টের প্রয়োজন নেই।
ক্রিয়েটিভ

আপনি যদি কেবল একটি বা অন্য ফর্মটি ট্রিগার করতে চান তবে ঠিক আছে। তবে যখন আপনার & quot; পিতামাতাকে & quot; ট্রিগার করতে হবে তখন এটি কীভাবে সমাধান হবে; এটি একটি এবং জেএস ছাড়াই তার ফর্মগুলির সাথে ফর্ম ?
sdlins

@ এসডলিন্স এই প্রশ্নটি সম্পর্কে যা তা নয়। প্রশ্নটি প্রায় 2 টি বিভিন্ন রূপের, তবে সেগুলি বাসা বেঁধেছে। আমি ভাবছি কেন আপনি 2 ফর্ম রাখতে চান তবে এখনও 1 টি ফাংশন জমা দিতে চান? আপনি কি কেবল তখন 1 টি ফর্ম রাখতে পারবেন না? এর চেয়ে অদ্ভুত কোনও কিছুর জন্য আপনাকে অবশ্যই জাভাস্ক্রিপ্টের অবলম্বন করতে হবে: পি
ক্রিয়েটিভ

হ্যাঁ, আপনি ঠিক বলেছেন, এটি ওপি প্রশ্ন নয়। আমি আমার নিজের পোস্ট করব। ধন্যবাদ!
sdlins

12

এই সমস্যাটি ঘুরে দেখার আরও একটি উপায়, আপনি যদি কোনও সার্ভার সাইড স্ক্রিপ্টিং ভাষা ব্যবহার করেন যা আপনাকে পোস্ট করা ডেটা ম্যানিপুলেট করার অনুমতি দেয়, তা হল আপনার এইচটিএমএল ফর্মটি এভাবে ঘোষণা করা:

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

আপনি যদি পোস্ট করা ডেটা মুদ্রণ করেন (আমি এখানে পিএইচপি ব্যবহার করব), আপনি এর মতো একটি অ্যারে পাবেন:

//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

দ্রষ্টব্য, আপনাকে ফর্ম উপাদানগুলিকে বাসা করার অনুমতি নেই!

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

https://www.w3.org/TR/html4/appendix/changes.html#hA.3.9 (এইচটিএমএল 4 স্পেসিফিকেশন 3.2 থেকে 4 এর নেস্টিং ফর্ম সম্পর্কিত কোনও পরিবর্তন নোট করে)

https://www.w3.org/TR/html4/appendix/changes.html#hA.1.1.12 (এইচটিএমএল 4 স্পেসিফিকেশন নেস্টিং ফর্মগুলির সাথে 4.0 থেকে 4.1 পর্যন্ত কোনও পরিবর্তন নোট করে)

https://www.w3.org/TR/html5-diff/ (এইচটিএমএল 5 স্পেসিফিকেশন 4 থেকে 5 এর নীড় ফর্ম সম্পর্কিত কোনও পরিবর্তন নোট করে)

https://www.w3.org/TR/html5/forms.html#association-of-controls- and- forms- এ মন্তব্য করা হয়েছে "এই বৈশিষ্ট্যটি লেখককে নেস্টেড ফর্ম উপাদানগুলির সমর্থনের অভাবকে ঘিরে কাজ করতে দেয়" " এটি নির্দিষ্ট করা হয়েছে যেখানে উদ্ধৃত করা হয়নি, আমি মনে করি তারা ধরে নিচ্ছে যে আমাদের ধরে নেওয়া উচিত যে এটি html3 নির্দিষ্টকরণে নির্দিষ্ট করা হয়েছে :)


23
সাড়ে তিন বছর উত্তর দেওয়া প্রশ্নে আপনি কেন পোস্ট করবেন তা আমার কোনও ধারণা নেই তবে আরও সমস্যাযুক্ত এটি HTML3 এর সাথে সংযোগ স্থাপন করছে যা দীর্ঘদিন ধরে কোনও প্রস্তাবনা হয়নি।
এডিয়াকাপি

7
এটি অন্তর্নিহিত প্রশ্নের উত্তর কতদিন দেওয়া হয়েছে তার একটি উল্লেখ, যা আমি বিশ্বাস করি গঠনমূলক। এছাড়াও আমি কৌশল-মুক্ত পেয়েছি "দ্রষ্টব্য, আপনাকে ফর্ম উপাদানগুলিকে বাসা দেওয়ার অনুমতি দেওয়া হয় না!" হাস্যকর হতে অনুমানের মধ্যে।
মার্ক পিটারসন

1
এটি একটি সমস্যা কারণ আমাকে এমন একটি এপিআই toোকাতে হবে যা একটি ফর্ম এবং কারণ নেট অ্যাপ্লিকেশন (যা সমস্ত কিছুতে <<>> ট্যাগটি মোড় করে)। আপনি কীভাবে এই সমস্যাটি কাটিয়ে উঠবেন।
জেলি 46

4

"নেস্টেড" ফর্মটি ধরে রাখতে আইফ্রেম ব্যবহার করা একটি সহজ কাজ work দৃশ্যত ফর্মটি নেস্টেড তবে কোডের পাশে এটি সম্পূর্ণ পৃথক এইচটিএমএল ফাইলে রয়েছে।



3

আপনি বোতাম ট্যাগের মধ্যে গঠন = "" ব্যবহার করতে পারেন।

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

এটি আলাদা বোতাম হিসাবে মূল আকারে নেস্ট করা হবে।


এটি প্রশ্নের উত্তর দেয় না তবে এটি আমাকে আরও একটি সমস্যার সমাধান করতে সহায়তা করেছে যাতে আমার এতটা
উত্সাহ

উপরে উপেক্ষা করুন (আমাকে 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 বছর কাটিয়েছি।

আমার আগের উত্তর / উদাহরণটি এইচটিএমএল মার্কআপের জন্য অ্যাকাউন্ট করে নি, দুঃখিত।

<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 অবৈধ ফর্ম_2 বলার ক্ষেত্রে ক্রমাগত ব্যর্থ।

আমি যখন form_1 <i>outside</i>এর form2 তৈরি করে এজ্যাক্স কনটেইনার স্থানান্তরিত হয়েছিলাম, তখন আমি আবার ব্যবসায়ে ফিরে এসেছি। এটি কেন বাসা বাঁধতে পারে এই প্রশ্নের উত্তর। আমি বলতে চাইছি, আসলে, কোন ফর্মটি ব্যবহার করতে হবে তা নির্ধারণ না করে আইডি কী? চারপাশে আরও ভাল, চটজলদি কাজ থাকতে হবে।


1

আপনার নেস্টেড ফর্মের আগে খালি ফর্ম ট্যাগটি ব্যবহার করুন

ফায়ারফক্স, ক্রোমে পরীক্ষিত এবং কাজ করেছে

আইই পরীক্ষিত নয়

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

আমি যখন ক্রোমে এটি চেষ্টা করেছি তখন এটি <ফর্মের নাম = "মেইনফর্ম"> </ form> <ফর্মের নাম = "সাবফর্ম"> </
for

1
আপনি কি সাবমিট বাটন দিয়ে চেষ্টা করেছেন? আমি এই পদ্ধতিটি বহুবার ব্যবহার করেছি এবং সর্বদা কাজ করি।
ফাতেহ

10
এটি নির্দিষ্টকরণের লঙ্ঘন এবং এটি ব্যবহার করা ভবিষ্যতের সমস্যার জন্য ভিক্ষা করছে।
ওসকার বার্গগ্রেন

আরও নতুন ওয়েবকিট সংস্করণগুলি নেস্টেড ফর্ম উপাদানগুলি সরিয়ে দেয়।
ভোগ্য

0

যদিও প্রশ্নটি বেশ পুরানো এবং আমি @ প্রত্যেকের সাথে একমত যে এইচটিএমএলে ফর্মের বাসা বাঁধার অনুমতি নেই

তবে এটি কিছু এটি দেখতে চাইবে

যেখানে আপনি হ্যাক করতে পারেন (আমি এটি হ্যাক বলছি যেহেতু আমি নিশ্চিত যে এটি বৈধ নয়) এইচটিএমএলটি ব্রাউজারকে বাসা বেঁধে রাখতে দেয়

<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>

জেএস ফিডল লিঙ্ক

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 %}এবং স্টাফ

এবং কিছু জেএস প্রয়োগ করেছেন

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 মাস ধরে হাজার হাজার সাইনআপ লেনদেন চালিয়ে যান, কেউ আমাদের কোনও অসুবিধা সম্পর্কে ডাকেনি।

নেস্টেড ফর্মগুলি সঠিক পদক্ষেপ গ্রহণের জন্য বিশ্লেষণের জন্য আমাকে একটি আইডি দিয়েছে। ভাঙি না ততক্ষণ আমি বোতামগুলির মধ্যে একটিতে একটি ক্ষেত্র সংযুক্ত করার চেষ্টা করেছি এবং ভ্যালিডেট অভিযোগ করেছে। এটি আনুগত্যিত করার পক্ষে খুব বড় কথা ছিল না - আমি বাহ্যিক ফর্মের উপর একটি স্পষ্টভাবে স্ট্রিংফাইটি ব্যবহার করেছি যাতে এটি জমা দেওয়ার এবং ফর্মটির সাথে মেলে না। হ্যাঁ, হ্যাঁ, একটি অনক্লিকের কাছে জমা দেওয়া থেকে বোতামগুলি নেওয়া উচিত ছিল।

পয়েন্টটি এমন পরিস্থিতিতে আছে যেখানে এটি সম্পূর্ণরূপে ভেঙে যায় না। তবে "সম্পূর্ণরূপে ভাঙ্গা নয়" সম্ভবত এটির জন্য খুব কম মানের :-)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.