আমি একই প্রভাব পেতে চাই jQuery.serialize()
তবে আমি কেবলমাত্র প্রদত্ত সন্তানের এলেন্টগুলি ফিরিয়ে দিতে চাই div
।
নমুনা ফলাফল:
single=Single2&multiple=Multiple&radio=radio1
আমি একই প্রভাব পেতে চাই jQuery.serialize()
তবে আমি কেবলমাত্র প্রদত্ত সন্তানের এলেন্টগুলি ফিরিয়ে দিতে চাই div
।
নমুনা ফলাফল:
single=Single2&multiple=Multiple&radio=radio1
উত্তর:
সমস্যা নেই. শুধু নিম্নলিখিত ব্যবহার করুন। এটি ঠিক কোনও ফর্মকে সিরিয়ালকরণ করার মতো আচরণ করবে তবে পরিবর্তে একটি ডিভের সামগ্রী ব্যবহার করবে।
$('#divId :input').serialize();
একটি বিক্ষোভের জন্য https://jsbin.com/xabureladi/1 দেখুন ( https://jsbin.com/xabureladi/1 / কোডের জন্য সম্পাদনা)
serialize
ক এর মধ্যে সমস্ত ফর্ম-উপাদান div
।আপনি #target-div-id
নিজের form
ব্যবহারের ভিতরে ডিভকে লক্ষ্য করে এটি করতে পারেন :
$('#target-div-id').find('select, textarea, input').serialize();
আমি বর্তমানে যে ফাংশনটি ব্যবহার করি:
/**
* Serializes form or any other element with jQuery.serialize
* @param el
*/
serialize: function(el) {
var serialized = $(el).serialize();
if (!serialized) // not a form
serialized = $(el).
find('input[name],select[name],textarea[name]').serialize();
return serialized;
}
এটি ব্যবহার করে দেখুন:
$ ( '# DivId')। এটি ( 'ইনপুট')। ধারাবাহিকভাবে ()
আমার সমাধান সম্পর্কে কি:
function serializeDiv( $div, serialize_method )
{
// Accepts 'serialize', 'serializeArray'; Implicit 'serialize'
serialize_method = serialize_method || 'serialize';
// Unique selector for wrapper forms
var inner_wrapper_class = 'any_unique_class_for_wrapped_content';
// Wrap content with a form
$div.wrapInner( "<form class='"+inner_wrapper_class+"'></form>" );
// Serialize inputs
var result = $('.'+inner_wrapper_class, $div)[serialize_method]();
// Eliminate newly created form
$('.script_wrap_inner_div_form', $div).contents().unwrap();
// Return result
return result;
}
/* USE: */
// For: $('#div').serialize()
serializeDiv($('#div')); /* or */ serializeDiv($('#div'), 'serialize');
// For: $('#div').serializeArray()
serializeDiv($('#div'), 'serializeArray');
যদি এই উপাদানগুলির একটি সাধারণ শ্রেণীর নাম থাকে তবে কেউ এটি ব্যবহার করতে পারে:
$('#your_div .your_classname').serialize()
এইভাবে আপনি বাটনগুলির নির্বাচন এড়াতে পারবেন, যা jQuery নির্বাচক ব্যবহার করে নির্বাচন করা হবে :input
। যদিও এটি ব্যবহার করেও এড়ানো যায়$('#your_div :input:not(:button)').serialize();
$('#divId > input, #divId > select, #divId > textarea').serialize();
ID
প্রতিটি নির্বাচক, মত: $('#divId > input, #divId > select, #divId > textarea')
; এছাড়াও, >
প্রতীকটি এটি সরাসরি বাচ্চাদের উপাদানগুলিকে বোঝায় ... এই দৃশ্যে খুব অস্বাভাবিক বা কমপক্ষে, খুব সীমাবদ্ধ।
$("#divId").find("select, textarea, input").serialize();
ভাল পারফরম্যান্স yeild? আমি কল্পনা করি যে ডিভের অনেকগুলি সারি / কলাম সহ একটি টেবিলের মতো প্রচুর উপাদান থাকলে ধীরে ধীরে আসতে পারে।