jQuery के रूप क्रमबद्ध - खाली स्ट्रिंग


95

मेरा html:

 <script type="text/javascript">

    $(function() {

        $("#bt1").click(function() {

            var f = $("#form1");
            var formData = f.serialize();

            alert(formData);
        });

    }); 
</script> 

 <div id="div1">
      <form id="form1" action="/Home/Test1" method="post" name="down">
        <div id="div2">
            <input id="input1" type="text" value="2" />
        </div>    
      </form>
  </div>

 <input type="submit" id="bt1" />

जब मैं क्लिक ईवेंट को फायर करता हूं, तो फॉर्मडाटा खाली हो जाता है। मैं jQuery 1.4.2 का उपयोग कर रहा हूं।

जवाबों:


214

आपको inputतत्व को एक नाम देना होगा । उदाहरण के लिए:

<form id="form1" action="/Home/Test1" method="post" name="down">
    <div id="div2">
        <input id="input1" type="text" value="2" name="foo"/>
    </div>    
</form>

आपको अलर्ट बॉक्स में देगा foo=2

.serialize()प्रपत्र फ़ील्ड्स का नाम और मान लेता है और जैसे एक स्ट्रिंग बनाता है name1=value1&name2=value2। नाम के बिना यह इस तरह की स्ट्रिंग नहीं बना सकता है।

ध्यान दें कि nameकुछ अलग है id। यदि आप इसे "सामान्य" तरीके से उपयोग करते हैं तो आपका फॉर्म भी काम नहीं करता। हर फॉर्म फील्ड को एक नाम की जरूरत होती है।


1
आईडी क्रमबद्ध btw के लिए आवश्यक हैं?
विक

मुझे यहाँ भी Madbreaks के उत्तर को शामिल करने का सुझाव दें।
स्लाव

मेरे पास एक नाम है लेकिन मेरे पास अभी भी खाली स्ट्रिंग है जब मेरे विचार को क्रमबद्ध करना एक संग्रह है इसलिए नाम उदाहरण के लिए हैं [0] .Unit, [0] .Currency
मार्क रसेल

नीचे दिए गए उत्तर ने मेरी मदद की ... सुनिश्चित करें कि आपके इनपुट अस्वीकृत नहीं हैं!
साउंडस्ट्रिप

82

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


4
यह एक बुरा है। फ़ील्ड को निष्क्रिय करना चाहता था, जबकि मैं मेल को अजाक्स-शैली भेज रहा हूं और फॉर्म को क्रमबद्ध करने से पहले किया था ...
डैनियल लैंग

1
ओह माय गॉश यह एक ऐसा मुद्दा था जो मुझे पागल कर रहा था। +1 आदमी, विकलांग तत्वों पर काम करने का कोई तरीका?
Noitidart

@Noitidart आप अपना स्वयं का serializejQuery एक्सटेंशन लिख सकते हैं जो इनपुट पर पुनरावृत्त करता है और अक्षम लोगों को शामिल करता है। लेकिन ऐसा करने का कोई तरीका नहीं है, जहां तक ​​मुझे पता है, आउट-ऑफ-द-बॉक्स jQuery का उपयोग करते हुए।
मेडब्रेक्स

यह समझ में नहीं आता है कि अक्षम तत्वों को शामिल नहीं किया जाना चाहिए, क्योंकि अक्षम तत्वों में उपयोगकर्ता इनपुट नहीं होना चाहिए।
जेनी ओ'रिली ने

2
@ JennyO'Reilly ज़रूर, लेकिन उपयोगकर्ता इनपुट नहीं होने का मतलब यह नहीं है कि "एक मूल्य नहीं है"।
मैडब्रेक्स

10

nameइनपुट में कोई विशेषता नहीं है ... यह क्रमबद्धता के लिए एक समस्या हो सकती है।

<input id="input1" type="text" value="2" name="input1" />

आदमी। तुम ऐसे जीवन रक्षक हो !! धन्यवाद।
अंजना सिल्वा

6

यह भी सुनिश्चित करें कि पृष्ठ पर एक ही आईडी के साथ 2 तत्व नहीं हैं।


3
यह एक टिप्पणी है, सवाल का जवाब नहीं है। कृपया भविष्य में टिप्पणियों का उपयोग करें। धन्यवाद :)
कोडिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.