2013-04-11 25 views
12
tarafından alınan

Sadece serializeArray engelli alanlardan içerik getirirken olmadığını farkEngelli alanlar değil serializeArray

(gerçek sorunu yansıtacak şekilde güncellenir Soru).

autosuggest listesinden bir öğe seçerek bir dizi (sokak) adres alanı doldurulur. Bu yapıldıktan sonra alanlar devre dışı bırakılır. Bunu read only olarak değiştirebilirim, ancak CSS'yi değiştirmek zorunda kalmadan devre dışı görünümün olmasını istiyorum.

Devre dışı bırakılan alanlar için serializeArray kapama verisi almanın bir yolu var mı?

var form_data = $('form').serializeAll(); 

    (function ($) { 
     $.fn.serializeAll = function() { 
     var data = $(this).serializeArray(); 

     $(':disabled[name]', this).each(function() { 
      data.push({ name: this.name, value: $(this).val() }); 
     }); 

     return data; 
     } 
    })(jQuery); 
+0

Dinamik olarak eklenen öğenizin –

+0

Evet biçiminde bir özniteliğiniz var mı? Submitte4d olması gereken tüm giriş alanları, name niteliğine sahiptir. Oh, tek bir not, alanlar devre dışı! (üzgünüm - Q'yu güncelleştiririm) – Steven

+0

Bu nedenle serializeArray öğesinin –

cevap

26

bu

var data = $('form').serializeAllArray(); 

deneyin

(Fiddle): Muhammed'e

Çözüm

sayesinde, bana sorunumu çözmeye yardımcı olan bir küçük eklenti hazırlandı Ve işte küçük eklenti O da sağlayan deneyebilirsiniz

(function ($) { 
    $.fn.serializeAllArray = function() { 
    var obj = {}; 

    $('input',this).each(function() { 
     obj[this.name] = $(this).val(); 
    }); 
    return $.param(obj); 
    } 
})(jQuery); 

kullanılır tüm eleman Onları seri ve daha sonra seri sonra bunları devre dışı bırakmak için sadece.

var myform = $('#form'); 
var disabled = myform.find(':input:disabled').removeAttr('disabled'); 
var serialized = myform.serializeArray(); 
disabled.attr('disabled','disabled'); 
+0

Güne gerçekten ne yapardı, eğer serializeArray'ı yeni eklentinin içine taşıdıysanız? ve orada verileri paylaştık. Sonra tek yapmam gereken 'data = $ (' form '). SerializeAllArray() '. – Steven

+0

şimdi istediğiniz gibi '.serializeAllArray()' kullanabilirsiniz –

+0

Teşekkürler Mohammad. Burada geliştirilmiş bir versiyon yaptım: http://jsfiddle.net/gARuJ/ – Steven

9

bunu okuyabilir readonly serializeArray() kullanabilirsiniz.

+0

Maalesef 'readonly'