2010-12-03 13 views
0

を失敗した私はCodeIgniterのでこの問題があります。 は - 私はフォームで送信ボタンをクリックすると、フォームが提出され、正しく を検証している - 私は送信ボタンをクリックしていない場合、ちょうど<enter>を押すと、フォームの検証は常に失敗します すべてのソリューション?それがCIのフォーム検証の欠陥ですか、何か不足していますか?のCodeIgniter:<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でフォーム要素の出力さえも得られません...) –

+0

マット:私は小さな作業例を作った、それは動作します - それは奇妙です。 – imploder

+0

ここ:http://www.stud.fit.vutbr.cz/~xmejzl03/f/ci-test-submit.tar.bz2 (サーバー上で実行するには、これらのものを編集する必要があります:.htaccess内のRewriteBase 、$ config ['base_url'] in system/application/config/config.php) – imploder

答えて

1

form_open('/')

フォーム要素は、あなたが提出するときに、何のポストデータが送られません<form>要素で囲まれることはありませんサーバーが検証に失敗しました。

+0

実際のコードでは、私はそれをエコーし​​ていますが、ここで間違って省略されました。私はコードをテキストではなくコードとして表示するように投稿を編集していました。テキストエディタはここでは非常に恐ろしいです。ごめんなさい。 – imploder

+0

@imploderテキストエディタに「コード」ボタンがあります。コードを強調表示して選択すると、コードとしてフォーマットされます。 –

1

私はこのように、送信ボタン用の空の検証ルールを追加することによってそれを解決:

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

今では動作します。私は本当に何が原因で起こっているのか分かりません。

関連する問題