2010-12-03 5 views
0

J'ai ce problème avec CodeIgniter: - lorsque je clique sur le bouton dans un formulaire, le formulaire est soumis et validé correctement - quand je ne cliquez pas sur le bouton d'envoi, il suffit de frapper <enter>, la validation du formulaire échoue toujours Toute solution? Est-ce une faille dans la validation de formulaire de CI ou ai-je oublié quelque chose?CodeIgniter: formulaire soumis à la validation du formulaire échoue <enter>

Quel code j'y ai:

--- the form view --- 

form_open("/"); 
...some inputs... 
echo form_submit('submit', 'Přihlásit'); 
form_close(); 
... 

--- the controller --- 

$this->CI->load->helper('form'); 
$this->CI->load->library('form_validation'); 

$this->CI->form_validation->set_rules('id_uziv', 'ID', 'required'); 
$this->CI->form_validation->set_rules('heslo', 'Heslo', 'required'); 
//... see, no rules have anyhting to do with the submit button 

if ($this->CI->form_validation->run() == FALSE) { 
    // validation OK 
} 
else { 
    // validation failed 
} 
+0

En gros, ce que vous avez écrit là fonctionne très bien avec un '' ou avec un clic. Vous pourriez avoir besoin de poster un petit exemple de travail (juste assez du contrôleur et de la vue) qui reproduit définitivement le problème. Comme c'est le cas, votre code posté ne fonctionnera pas du tout, d'après ce que je peux voir (vous ne faites pas écho aux résultats de form_open() et form_close(), donc vous n'obtiendrez même pas la sortie de l'élément form dans votre code HTML ...) –

+0

Matt: J'ai fait le petit exemple de travail et ça marche - c'est étrange. – imploder

+0

ici: http://www.stud.fit.vutbr.cz/~xmejzl03/f/ci-test-submit.tar.bz2 (ces choses doivent être éditées pour l'exécuter sur votre serveur: RewriteBase dans .htaccess , $ config ['base_url'] dans system/application/config/config.php) – imploder

Répondre

1

vous n'êtes pas écho form_open('/')

vos éléments de formulaire ne seront pas enfermés dans un élément <form> lorsque vous soumettez, aucune donnée de poste seront envoyés à le serveur entraînant l'échec de votre validation.

+0

Dans le code réel, je suis en train de faire écho, il a été mistekenly omis ici. Je modifiais le post pour que le code apparaisse sous forme de code, pas sous forme de texte. L'éditeur de texte est assez horrible ici. Pardon. – imploder

+0

@imploder Il y a un bouton "code" dans l'éditeur de texte - mettez en surbrillance le code et appuyez dessus, et tout ce que vous avez sélectionné sera formaté en code. –

1

Je l'ai résolu en ajoutant une règle de validation vide pour le bouton soumettre, comme ceci:

$this->CI->form_validation->set_rules('submit_button', 'Submit', ''); 

Maintenant, il fonctionne. Je ne sais pas vraiment ce qui causait le problème.

Questions connexes