I have a couple of concerns about the validate.

1. I don't really get that function. Let's assume you have a form with 3 inputs. When you call form's validate(), it's going through the 3 inputs and call validate() on each one. Let's also assume that all 3 inputs are invalid. So, according to that algorithm, validate() on the first one will return false. So, we will never know if the second one and the third one were false. Even if that was intended, you still increment i and evaluate i<container.children.length instead of simply returning false.

2. I guess that function is supposed to be called before the save button (or submit button). So you write down everything, then click on save and then you see what wasn't right. It's a good approach, but wouldn't it be simpler if we delegate that validate job to the components. What I mean is: a control is bound on a model/property.Tell me if I'm wrong, but aren't we suppose to receive a signal or something if the value changed? Can't we plug that validation into a pipeline? We will not need to deal with that validate loop and let the component validate themselves on each change.