jQuery ajax - serializeArray() yöntemi
Örnek
Form değerlerinin dizgi olarak serileştirilmiş sonuçlarını çıktıya verin:
$("button").click(function(){ x=$("form").serializeArray(); $.each(x, function(i, field){ $("#results").append(field.name + ":" + field.value + " "); ); );
Tanım ve kullanım
serializeArray() yöntemi, form değerlerini serileştirerek nesne dizisi oluşturur (ad ve değer).
Bir veya daha fazla form elementi (örneğin input ve/veya textarea) veya form etiketi kendisini seçebilirsiniz.
Sözdizimi
$(seçici).serializeArray()
Ayrıntılı açıklama
serializeArray() yöntemi, form elementlerini (benzer) .serialize() yöntemidöner.
Dikkat:Bu yöntem JSON nesnesi döner, JSON dizgesi olmaz. Dizgeselleştirme işlemi için eklenti veya üçüncü taraf kütüphanesi kullanmanız gerekebilir.
Dönen JSON nesnesi, her biri name parametresi ve value parametresi (value boş değilse) içeren bir nesne dizisinden oluşur. Örneğin:
[ {name: 'firstname', value: 'Hello'}, {name: 'lastname', value: 'World'}, {name: 'alias'}, // Değer boş ]
.serializeArray() yöntemi, W3C'nin successful controlsgeçerli denetimlerin standartlarına göre hangi elementlerin dahil edilmesi gerektiğini tespit eder. Özellikle belirtmek gerekirse, elementler devre dışı bırakılamaz (devre dışı bırakılan elementler dahil edilmez) ve elementlerin name özelliği olmalıdır. Gönderim düğmesi değerleri de serileştirilmez. Dosya seçim elementi verileri de serileştirilmez.
Bu yöntem, <input>, <textarea> ve <select> gibi ayrı form elemanlarını seçmek için kullanılır, ancak daha kolay bir yöntem, doğrudan <form> etiketini seçmek ve serileştirme işlemi gerçekleştirmektir.
$("form").submit(function() { console.log($(this).serializeArray()); return false; );
Yukarıdaki kodun aşağıdaki veri yapısını oluşturur(tarayıcı console.log destekliyorsa):
[ { ad: a değer: 1 }, { ad: b değer: 2 }, { ad: c değer: 3 }, { ad: d değer: 4 }, { ad: e değer: 5 } ]
Örnek
Form içeriğini al ve web sayfasına ekle:
HTML kodu:
<p id="results"><b>Sonuçlar:</b> </p> <form> <select name="single"> <option>Tek</option> <option>Tek2</option> </select> <select name="multiple" multiple="multiple"> <option selected="selected">Çoklu</option> <option>Çoklu2</option> <option selected="selected">Çoklu3</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 kodu:
var fields = $("select, :radio").serializeArray(); jQuery.each( fields, function(i, field){ $("#results").append(field.value + " "); );