jQuery form.serializeArray test on multivalues

by Laurens Maneschijn

HTML

<form>
  <input name="arr1[]" value="val1-1">
  <input name="arr1[]" value="val1-2">
  <input name="arr1[]" value="val1-3">
  <input name="arr2[][a]" value="val2-a">
  <input name="arr2[][b]" value="val2-b">
  <input name="arr3[a][]" value="val3-a">
  <input name="arr3[a][]" value="val3-a">
  <input name="arr3[b][]" value="val3-b">
  <input name="arr3[b][]" value="val3-b">
  <input name="arr4[][]" value="val4-1">
  <input name="arr4[][]" value="val4-2">
</form>
<hr>
<textarea id="ta1"></textarea>
<textarea id="ta2"></textarea>
<textarea id="ta3"></textarea>
<hr>
<pre>
I think at some point $('form').serializeArray() lost data
(when there were multiple fields with name="arr[]").
but it seems to work fine now?
tried including different jquery versions... can't find where it was wrong before?
</pre>
<hr>

JavaScript

console.log( $.fn.jquery );
console.log( $('form').serialize() );
console.log( $('form').serializeArray() );

function linesToTextarea(ta, lines){
	$(ta)
		.val(lines.join('\n'))
	  .attr('rows',lines.length);
}

function update(){
  var lines=[];
  $.each(
    $('form').serializeArray(),
    function(i,v){
      lines.push([v.name,v.value].join('='));
    }
  );
  linesToTextarea('#ta1',lines);
	linesToTextarea('#ta2',decodeURIComponent($('form').serialize()).split('&'));
  linesToTextarea('#ta3',[$.fn.jquery]);
}
update();