Seri hale getirmem gereken bir form var. Krom ve FireFox'da mükemmel çalışır, ancak IE11'da hiç çalışmaz. Sorunu, boş bir diziyi döndürerek serializeArray()
olarak daraltdım. chrome https://jsfiddle.net/xu8LpmLr/5/jquery 2.2 serializeArray() Firefox, Chrome'da çalışıyor ancak IE çalışmıyor (11)
Sonuçlar::
0 IE[{ "ad" sorunu izini amacıyla büyük ölçüde kodumu ve formu basitleştirilmiş nerede
JSON.stringify($("#enrollmentForm").find($("fieldset")).eq(0).serializeArray());
Bir jsfiddle oluşturduk "kimlik", "değer", "0"}, { "adı,": "address1", "değeri": ""}, { "adı,": "address2", "değeri": ""}, {" ":" şehir "," değer ":" "}, {" ad ":" durum "," değer ":" "}, {" ad ":" zip "," değer ":" "}]
Sonuçlar:
[]
GÜNCELLEME: Onun yanıtı için Rion Williams'a teşekkürler.
var enteredAddressData = function() {
var data = $("#enrollmentForm").serializeArray().reduce(function(obj, item) {
var arrayOfAddressElements = ['id','address1','address2','city','state','zip'];
if (arrayOfAddressElements.indexOf(item.name) >= 0) {
if (item.name === 'zip') {
var zipParts = item.value.split('-');
obj['zip5'] = zipParts[0];
if (zipParts.length > 1) {
obj['zip4'] = zipParts[1];
} else {
obj['zip4'] = '';
}
} else {
obj[item.name] = item.value;
}
}
return obj;
}, {});
return { 'address': data };
};
Sonuç:
(Ben de 2 parçaya zip bölme ediyorum) benim formunda birden alan kümeleri var ve sadece adres bilgisi gerekli, bu yüzden sadece ihtiyacım alanları serialize için kodumu modifiyeJSON.stringify(enteredAddressData())
{ "adresi": { "id": "0", "address1": "address1value", "address2": "address2value", "şehir": "cityvalue", "devlet":" il "," zip5 ":" 60191 "," zip4 ":" "}}
teşekkür ederiz:
hangi appears to work as expected, altta yatan
fieldset
yerine kendisini gerçek<form>
seri deneyin! Birden fazla alan kümem var ve sadece bir tanesini serileştirmek istedim. Sonuç kodumu eklemek için orijinal gönderimi güncelleyeceğim! –