2

im trying to pass an array as a string

$(document).ready(function(){
var args = {};
$('.radio').click(function(){
    var ob = $(this).siblings('select');
    $('#uploader-wrapper').html(pre_load());
    $('.radio').siblings('select').attr('disabled', 'disabled');
    ob.removeAttr('disabled');
    args[ob.attr('name')] = $(':selected', ob).text();
    loader( args.serializeArray() );
})
$('select[name=foo]').change(function(){
    var ob = $(this);
    $('#uploader-wrapper').html(pre_load());
    args[ob.attr('name')] = $(':selected', ob).text();
    loader( args.serializeArray() );
});
});

but i get an error

args.serializeArray is not a function

can anyone see what im doing wrong?

Phil Jackson
  • 10,238
  • 23
  • 96
  • 130

2 Answers2

6

serializeArray is only available on jQuery objects. Since args is a vanilla object, use $.param:

loader($.param(args));
kevingessner
  • 18,559
  • 5
  • 43
  • 63
2

args is a normal javascript object, not a JQuery object.

From the docs,

This method can act on a jQuery object that has selected individual form elements, such as <input>, <textarea>, and <select>.

Blair Conrad
  • 233,004
  • 25
  • 132
  • 111