2016-04-06 33 views
0

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::

[{ "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 ":" "}]

0 IE

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 modifiye
JSON.stringify(enteredAddressData()) 

{ "adresi": { "id": "0", "address1": "address1value", "address2": "address2value", "şehir": "cityvalue", "devlet":" il "," zip5 ":" 60191 "," zip4 ":" "}}

cevap

1

The documentation for the serializeArray() işlevi, 'un yalnızca jQuery formları ve/veya form denetimleri formunda çalışacağını açıkça belirtir; bu, genellikle "kuraldan etkilenen" Internet Explorer'ın neden reddedebileceğini açıklayabilir.

JSON.stringify($("#enrollmentForm").serializeArray()) 
+0

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! –

İlgili konular