'use strict'; Ox.ObjectInput = function(options, self) { self = self || {}; var that = Ox.Element({}, self) .defaults({ elements: [], labelWidth: 128, width: 256 }) .options(options || {}) .addClass('OxObjectInput') .css({ width: self.options.width + 'px', height: self.options.elements.length * 24 - 8 + 'px' }); Ox.print('ObjI', self.options) self.options.elements.forEach(function($element) { $element.options({ labelWidth: self.options.labelWidth, width: self.options.width }) .bindEvent({ change: function(data) { // ... } }) .appendTo(that); }); that.value = function() { var value = {}; self.options.elements.forEach(function(element) { value[element.options('id')] = element.value(); }); return value; }; return that; };