2010-12-03 111 views
0

我有这个问题,笨: - 当我点击的形式提交按钮,提交表单并正确 验证 - 当我不点击提交按钮,刚刚点击<enter>,表单验证总是失败 任何解决方案?这是CI的表单验证中的缺陷还是我错过了一些东西?笨:与<enter>提交的表单失败表单验证

我有什么样的代码有:

--- 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

大致上,你写的那里有一个'`或点击工作正常。您可能需要发布一个小型工作示例(只需控制器和视图就足够了),肯定会再现问题。实际上,您的发布代码完全无法工作,从我所能看到的(您没有回应form_open()和form_close()的结果,因此您甚至不会在HTML中获得表单元素输出...) – 2010-12-03 10:00:16

+0

Matt:我做了一个小的工作例子,它的工作原理 - 这很奇怪。 – imploder 2010-12-04 10:56:53

回答

1

你不呼应form_open('/')

你的表单元素不会在<form>元素,所以当你提交,无后的数据将被发送到内封闭导致您的验证失败的服务器。

1

我解决它通过添加一个空的验证规则提交按钮,如下所示:

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

现在,它的工作原理。我不知道是什么导致了这个问题。