Bonjour,
dans un formtype j'ai défini le champ "Nom" comme élément obligatoire et si l'utiisateur ne saisit rien une petite bulle apparaît sur le champ. Dans mon formType j'ai écris ceci:
et dans le controller dans les méthodes newaction ou editcaiton, j'ai écris ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class NewFormType extends AbstractType { ... public function buildForm(FormBuilder $builder, array $options) { .... $builder ->add('nom', 'text', array('required' => true, 'label' => 'Nom', 'attr' => array( 'oninvalid' => 'if(this.value.length==0)this.setCustomValidity(\'Le nom ne peut pas être vide\');else {this.setCustomValidity(\'\'); return false;}', ) )) .... ; } }
Avec createAction() cela fonctionne normalement, alors que dans editaction, rien ne se passe ???. J'ai remarqué aussi que suivant le navigateur l'élément required = true est interprété (Firefox) ou non (IE). Dans mon cas, j'utilise Firefox 16.0.2!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... $form = $this->createForm(new NewFormType(), $entity); ...
Ma question est de savoir s'il s'agit d'un bug général lié au navigateur Web (Firefox) ou s'il y a une astuce dans le FormType ou autre afin que l'évément "oninvalid" soit correctement interprété!
D'avance merci pour votre aide!
Cédric
Partager