Изменение поведения Zend_Form для вызова функции JS при отправке - PullRequest
0 голосов
/ 04 октября 2010

Я хотел бы изменить стандартное поведение Zend_Form, чтобы при каждом нажатии кнопки отправки отправка формы запрещалась и вызывалась произвольная функция JavaScript. Это будет сделано для всех форм на сайте, однако фактическая вызываемая функция JS может меняться от формы к форме.

Какой самый подходящий способ сделать это? Через пользовательский декоратор на элементе отправки? Не могли бы вы дать несколько советов?

Спасибо.

1 Ответ

4 голосов
/ 04 октября 2010

По моему мнению, Zend_Form не должен нуждаться в знании JavaScript или желать его. Я хотел бы добавить класс в форму и использовать это имя класса в качестве ловушки для применения JavaScript.

Представьте себе форму:

<form class="validate-me">
  <!-- //elements -->
  <input type="submit">
</form> 

Затем вы можете применить свой JavaScript к формам с заданным именем класса (псевдо JS, используйте библиотеку)

var el = document.getElementsByClassName('validate-me')[0];
el.on('submit', function(e){
  //validate the form, stop the event if invalid
});

Если вы хотите добавить дополнительную разметку или атрибуты вместо этого подхода, вам непременно нужно взглянуть на декораторы.

...