2009-09-14 3 views
2

J'ai un élément de forme:Comment supprimer les attributs de formulaire dans Zend Framework?

$Form=new Zend_Form; 
     $Form->setAction($this->view->url(array('controller'=>'auth','action'=>'create'),null,true)) 
      ->setMethod('post') 
      ->setAttrib('id','auth-form') 
      ->removeAttrib('enctype'); 

Comme on peut le voir que j'utilise la méthode removeAttrib pour supprimer le enctype par défaut. Mais, quand je fais écho à la forme que je reçois toujours:

<form id="auth-form" enctype="application/x-www-form-urlencoded" action="/auth/resetpassword2" method="post"> 

Répondre

4

Vérifiez cela. Ligne 92 de Zend_Form_Decorator_Form:

if ($method == Zend_Form::METHOD_POST) { 
    $this->setOption('enctype', 'application/x-www-form-urlencoded'); 
} 

Alors, si c'est la poste, le enctype est automatiquement ajouté. Vous pouvez remplacer le décorateur et le supprimer, même si je ne suis pas sûr s'il y a quelque chose de mal à avoir l'ensemble enctype.

+0

Il se heurte à JS dans IE –

+0

Ah oui, je pense que c'est une bonne réponse. Vous pouvez également créer votre propre assistant de vue de formulaire pour remplacer celui par défaut. Si les conflits EncType avec le JS ne pouvez-vous pas simplement changer l'EncType pour correspondre? – smack0007

+0

Pourrait être un correctif: http://www.talkphp.com/javascript-ajax-e4x/1176-form-enctype-internet-explorer.html – typeoneerror

1

« enctype » est pas un attribut dans le sens de Zend_Form. Voir la méthode setEncType(). Je ne suis pas sûr que vous pouvez complètement l'enlever sans écrire le HTML vous-même.

0

Je crois que enctype="application/x-www-form-urlencoded" est activé par défaut pour que les téléchargements de fichiers fonctionnent dans tous les cas. Notez que si vous définissez enctype sur '', vous ne pourrez pas télécharger de fichiers via ce formulaire.

2
$Form->setAttrib('enctype', null);