Problem: When you render the form as a whole (i.e: <?php echo $this->form ?>), everything works fine, but when you render each element separate, the zendDijit {"id":"yourFormId","params":{"dojoType":"dijit.form.Form"}} is missing. This causes to break the validation/xhr process, because dijit.byId() returns only an ‘undefined’ value.
Solution: Go to your View, where you render your form and add the following:
$form = $this->form;
$this->dojo()->setDijit($form->getId(), array('dojoType' => 'dijit.form.Form'));
// add form tag ...
// add elements ...
It took me nearly 3 hours to figure this out ![]()
Hope this helps someone.

Thank you, very much. It helped a lot.
Definitely imagine that that you said. Your favourite reason appeared to be at the net the simplest factor to bear in mind of. I say to you, I certainly get annoyed whilst other people think about worries that they plainly don’t recognize about. You managed to hit the nail upon the top and also outlined out the whole thing without having side effect , people can take a signal. Will likely be back to get more. Thank you