В js была каша, по остаточному принципу как всегда заваривается. Пришла пора разобрать все, и оказалось что у меня не хватает тямы это сделать.
В php есть коллекция (объект) ActiveForm в которую собираются объекты полутора классов: FormField - для вообще полей; и FormFile extends FormField - для файловых. В субклассе FormFile входящие данные модели тупо отсылаются в конструктор родителя parent::__constuct($data); Ну и затем свои проперти-методы добавляются и отчасти перезаписывают родительские. Все чики-пуки.
В JS у меня пока что вот так получается:
if(type=='file')
var obj=FormFile(opts,progress);
else
var obj=FormField();
obj.elem= elem;
obj.error= null;
obj.index= index;
obj.type= type;
obj.title= elem.title;
// тут еще куча пропертей
Если я выдам условно родительскому объекту element
var obj=FormField(element);
и там профтыкаю все нормально, то, дальше не пойму что делать. У этих двух объектов кроме перечисленных пропертей - ничего общего.