2010-12-03 183 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', ''); 

現在,它的工作原理。我不知道是什麼導致了這個問題。