Zend обрабатывает вашу логику на стороне сервера и выполняет все генерации HTML, фильтрацию, проверку и т. Д. Если вы хотите, чтобы Zend генерировал дополнительный код для ваших элементов, вам необходимо будет create a new form element decorator или разместить свою форму вручную с помощью шаблона (отображать каждый элемент отдельно, а не просто <?= $form ?>
. Вы также можете посмотреть проект ZendX.
Я предлагаю вам выбрать несколько разных маршрутов и добавить слой клиента для презентации. Например, когда вы определяете элемент, добавьте к нему определенные классы. .
$elem = new Zend_Form_Element_Text('my_element', array(
'class' => 'required validate-phone ui-icon-phone'
));
На стороне клиента добавить некоторые CSS
input[type=text].ui-icon-phone {
background: url(...);
}
На стороне клиента JS из добавленных для привязки к классам элементов, чтобы сделать проверку. Я бы предложил использовать jquery validation plugin ... вы можете перегрузить способ отображения сообщений, а пользователь - красным X на недопустимые входы. Также смотрите Masked Input Plugin (см. demo).
При таком подходе ваш служебный код не зависит от кода на стороне клиента.