На самом деле я не вижу, где это должен быть декоратор, помощник вида или скрипт вида.
Если бы я хотел присоединить какое-либо поведение на стороне клиента к элементу формы, я бы, вероятно, установил атрибут с $elt->setAttrib('class', 'someClass')
или $elt->setAttrib('id', 'someId')
, каким-то хуком, к которому может присоединиться мой скрипт. Затем я добавлю слушателей / обработчики к этим целевым элементам.
Например, для обработчика кликов, использующего jQuery, это будет что-то вроде:
(function($){
$(document).ready(function(){
$('.someClass').click(function(e){
// handle the event here
});
});
})(jQuery);
Преимущество заключается в том, что оно ненавязчиво, поэтому разметка остается чистой. Надеюсь, javascript - это улучшение, а не критическая часть функциональности, поэтому он постепенно изнашивается.
Возможно, вы имеете в виду, что сам этот сегмент javascript необходимо многократно использовать в разных идентификаторах элементов - someClass
, в этом примере. В этом случае вы могли бы просто написать помощник вида, который принимает имя класса CSS в качестве параметра.