Как получить значение у только видимых полей?
Если у поля нету атрибута name, то он не попадает в serialize()
Можно этим воспользоваться
Или жеvar data  = $('#form :input:not(:hidden)').serialize();
Если вашим полям и правда присваивается свойство, можно же делать по книжке))):
в цикле опрашиваем и собираемvar arr = [];
for (var i = 0; i < form.elements.length; i++) {
   elem = form.elements[i];
   if (elem.style.display === 'block') {
      arr[]=elem.value;
   }
}
console.log(arr);