jQuery ajax - روش serializeArray()

مثال

نتایج 序ال‌سازی مقادیر فرم به صورت آرایه چاپ شود:

$("button").click(function(){
  x=$("form").serializeArray();
  $.each(x, function(i, field){
    $("#results").append(field.name + ":" + field.value + " ");
  );
);

آزمایش کنید

تعریف و استفاده

serializeArray() روشی است که با 序ال‌سازی مقادیر فرم، یک آرایه از اشیاء (نام و مقدار) ایجاد می‌کند.

شما می‌توانید یک یا چند عناصر فرم (مانند input و یا textarea) یا فرم خود را انتخاب کنید.

قانون‌نویسی

$(انتخاب‌گر).serializeArray()

شرح

serializeArray() روش 序ال‌سازی عناصر فرم (مانند روش .serialize())، داده‌های ساختاری JSON را برمی‌گرداند.

توجه داشته باشید:این روش JSON object برمی‌گردد، نه JSON string. برای تبدیل به string نیاز به استفاده از پلاگین یا کتابخانه‌های سومیه است.

JSON object برمی‌گردد که از یک آرایه از اشیاء تشکیل شده است، که هر یک یک یا دو جفت نام-مقدار را شامل می‌شود - پارامتر name و پارامتر value (اگر value خالی نباشد). به عنوان مثال:

[ 
  {name: 'firstname', value: 'Hello'}, 
  {name: 'lastname', value: 'World'},
  {name: 'alias'}, // مقادیر خالی
]

.serializeArray() روش استفاده از W3C در مورد controls موفقبر اساس استانداردهای (کنترل‌های معتبر) برای تعیین哪些 elements باید شامل شوند. توجه داشته باشید که عناصر نمی‌توانند غیرفعال باشند (عناصر غیرفعال شامل نمی‌شوند) و باید دارای ویژگی name باشند. همچنین، مقادیر دکمه‌های ارسال نیز 序ال‌سازی نمی‌شوند. داده‌های عناصر انتخاب فایل نیز 序ال‌سازی نمی‌شوند.

این روش می‌تواند بر روی اشیاء مربوط به فرم‌های انتخاب شده عمل کند، مانند <input>, <textarea> و <select>، اما روشی راحت‌تر این است که مستقیماً بر روی برچسب <form> خود برای عملیات 序列‌سازی اقدام کنید.

$("form").submit(function() {
  console.log($(this).serializeArray());
  return false;
);

این کد ساختار زیرین را ایجاد می کند (فرض کنید مرورگر پشتیبانی از console.log را دارد):

[
  {
    name: a
    value: 1
  },
  {
    name: b
    value: 2
  },
  {
    name: c
    value: 3
  },
  {
    name: d
    value: 4
  },
  {
    name: e
    value: 5
  }
]

مثال

دریافت محتوای فرم و وارد کردن آن به صفحه وب:

کد HTML:

<p id="results"><b>نتایج:</b> </p>
<form>
  <select name="single">
    <option>Single</option>
    <option>Single2</option>
  </select>
  <select name="multiple" multiple="multiple">
    <option selected="selected">Multiple</option>
    <option>Multiple2</option>
    <option selected="selected">Multiple3</option>
  </select><br/>
  <input type="checkbox" name="check" value="check1"/> check1
  <input type="checkbox" name="check" value="check2" checked="checked"/> check2
  <input type="radio" name="radio" value="radio1" checked="checked"/> radio1
  <input type="radio" name="radio" value="radio2"/> radio2
</form>

کد jQuery:

var fields = $("select, :radio").serializeArray();
jQuery.each( fields, function(i, field){
  $("#results").append(field.value + " ");
);