Вот оно:
При определении формы укажите ее идентификатор:
$this->setName('StrataSelect');
или
$this->setAttrib('id', 'StrataSelect');
Тогда событие onChange использует getElementById:
$strata = new Zend_Dojo_Form_Element_FilteringSelect('strata');
$strata->setLabel('Select a strata: ')->setMultiOptions($this->stratalist)->setAttrib('onChange', "document.dojo.byId('StrataSelect').submit();");
или
$strata->setLabel('Select a strata: ')->setMultiOptions($this->stratalist)->setAttrib('onChange', "document.getElementById('StrataSelect').submit();");
Почему это работает, и ни один из вызовов submit () старой школы, вероятно, не имеет отношения к dojo, обрабатывающему событие onchange Поэтому submit или this.form не являются объектами, методами и т. Д. И т. Д. И т. Д.
Я не хочу помещать в представление javascript, от которого зависит эта форма. Я хочу, чтобы эта форма была "переносимой". Поэтому я не хочу использовать dojo.connect
Возможно, есть лучшие способы сделать это. Поэтому я пока оставлю это без ответа.