2010-11-26 4 views
1

J'ai étendu Zend_Form pour créer mon formulaire personnalisé que je vais réutiliser sur certaines pages de mon site. Pour ce formulaire, j'ai également créé une validation JavaScript basée sur jquery.Validation Javascript et Zend_Form

Ce que je voudrais faire est d'ajouter cette validation JavaScript pour le formulaire dans le sous-classe Zend_Form. Ainsi, à chaque fois que le formulaire est appelé, le JavaScript est également initialisé.

Dans un script de vue, vous pouvez utiliser $ this-> headScript() -> appendFile ('/ js/val.js') et utiliser echo $ this-> headScript() dans la mise en page. Mais à ma connaissance, headScript() n'est pas possible dans Zend_Form.

Comment puis-je utiliser HeadScript dans Zend_Form ou est leur une alternative approche « mieux »

Répondre

1

Vous pouvez utiliser

$this->getView(); 

à l'intérieur du formulaire pour obtenir une référence à votre vue (via le moteur de rendu de vue) . Utilisez la vue d'accéder à vos aides de vue alors:

$this->getView()->headScript()->appendFile('/js/val.js'); 

Je peux ajouter que fait, je n'aime pas cette approche car elle lie votre formulaire à la vue, mais il est plus facile et plus rapide de faire ce que vous essayez faire.

+0

Stefan, quelle approche pensez-vous préférable de stocker la validation javascript avec le formulaire? – vdrmrt

+0

Peut-être que certains assistant de vue, qui crée le formulaire et injecte le javascript dans la vue réduirait ce couplage. Mais je ne pense pas que ça en vaille la peine, si vous n'utilisez pas vos formulaires en dehors d'un contexte de vue (par exemple, certains développeurs suggèrent d'utiliser des formulaires à l'intérieur du modèle pour y effectuer la validation). –