jQuery ফর্ম সিরিয়ালাইজ - খালি স্ট্রিং


100

আমার এইচটিএমএল:

 <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 ব্যবহার করছি।

উত্তর:


217

আপনাকে 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। আপনি যদি "ফর্মাল" উপায়ে ব্যবহার করেন তবে আপনার ফর্মটিও কাজ করবে না। প্রতিটি ফর্ম ক্ষেত্রে একটি নাম প্রয়োজন।


4
ফর্ম সিরিয়ালাইজ বিটিডব্লিউয়ের জন্য আইডিগুলি প্রয়োজনীয়?
ভিক

আমাকে এখানেও ম্যাডব্রিক্সের উত্তর অন্তর্ভুক্ত করার পরামর্শ দিই।
স্লাভিক

আমার একটি নাম আছে তবে আমার দৃষ্টিভঙ্গি সিরিয়াল করার সময় আমার কাছে খালি স্ট্রিং রয়েছে তাই নামগুলি উদাহরণস্বরূপ [0] nউনিট, [0]। কর্টেন্সি
মার্চ রুসেল

নীচের উত্তরগুলি আমাকে সহায়তা করেছে ... নিশ্চিত করুন যে আপনার ইনপুটগুলি অক্ষম না হয়ে গেছে!
সাউন্ডস্ট্রাইপ

84

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


4
ওটা খুব বাজে। আমি জাজ-স্টাইলে মেইলটি প্রেরণ করার সময় ক্ষেত্রগুলি অক্ষম করতে চেয়েছিলাম এবং ফর্মটি সিরিয়ালকরণের আগে এটি করেছে ...
ড্যানিয়েল ল্যাং

4
ওহ আমার গোশ এটি এমন একটি বিষয় ছিল যা আমাকে পাগল করে তুলেছিল। +1 লোক, এটি কোনওভাবেই অক্ষম উপাদানগুলিতে কাজ করতে পারে?
নোটিডার্ট

@ নোইটিডার্ট আপনি নিজের serializejQuery এক্সটেনশন লিখতে পারেন যা ইনপুটগুলির উপরে পুনরাবৃত্তি করে এবং এতে অক্ষম রয়েছে। তবে এটি করার কোনও উপায় নেই, যতদূর আমি জানি, অফ-অফ-বাক্স jQuery ব্যবহার করে।
ম্যাডব্রেক্স 15

অক্ষম উপাদানগুলিকে অন্তর্ভুক্ত না করা এটি অর্থবোধ করে, যেহেতু অক্ষম উপাদানগুলিতে ব্যবহারকারীদের ইনপুট না থাকা উচিত।
জেনি ও'রিলি

4
@ জেনিও'রিলি শিওর, তবে ব্যবহারকারীর ইনপুট না থাকার অর্থ "এর কোনও মূল্য নেই" does
ম্যাডব্র্যাকস

10

ইনপুটটিতে কোনও nameবৈশিষ্ট্য নেই ... যা সিরিয়ালাইজ করার জন্য সমস্যা হতে পারে।

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

মানুষ. তুমি এমন জীবনরক্ষক !! ধন্যবাদ.
অঞ্জনা সিলভা

6

এছাড়াও নিশ্চিত করুন যে পৃষ্ঠায় একই আইডি সহ 2 টি উপাদান নেই।


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