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.
It is fairy a common task to cut a string – ie when a teaser text should not be longer than n characters. A lot of people use substring() or substr(), depending on their favourite language. However with regex it is really easy and you do not need to cut a word:
// in php it would be:
preg_match("/(.{1,15}(\s))/", $yourString, $matches);
// or in java something like this - maybe ; )
Pattern myPattern = Pattern.compile((.{1,15}(\\s)));
Matcher myMatch = myPattern.matcher(yourString);
To put it in plain english:
* get the first 15 characters (same as substring)
* BUT – and here goes the magic: match less until you find a whitespace character and cut the rest.
So it could look like this in php:
<?php
// you could check the length of the string but actually you don't need to ...
$myString = "People seem to enjoy things more when they know a lot of other people have been left out of the pleasure.";
preg_match("/(.{1,15}(\s))/", $yourString, $matches);
echo $matches[0]." ...";
// would print:
// People seem to ...
// and with {1,27}
// People seem to enjoy things ...
?>
beer o’clock! cheers