【问题标题】:CodeIgniter: form submitted with <enter> fails form validationCodeIgniter:使用 <enter> 提交的表单未通过表单验证
【发布时间】:2010-12-03 08:17:53
【问题描述】:

CodeIgniter 有这个问题: - 当我单击表单中的提交按钮时,表单已正确提交并验证 - 当我不点击提交按钮时,直接点击&lt;enter&gt;,表单验证总是失败 有什么解决办法吗?这是 CI 表单验证的缺陷还是我遗漏了什么?

我有什么代码:

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

【问题讨论】:

  • 您在那里写的大致内容对我来说很好用&lt;enter&gt; 或单击。您可能需要发布一个肯定会重现问题的小型工作示例(仅够控制器和视图)。实际上,您发布的代码根本不起作用,据我所见(您没有回显 form_open() 和 form_close() 的结果,因此您甚至不会在 HTML 中获得表单元素输出...)
  • Matt:我做了一个小的工作示例,它可以工作——这很奇怪。
  • 这里:stud.fit.vutbr.cz/~xmejzl03/f/ci-test-submit.tar.bz2(需要编辑这些东西才能在您的服务器上运行它:.htaccess 中的 RewriteBase,system/application/config/config.php 中的 $config['base_url'])

标签: php forms codeigniter validation


【解决方案1】:

你没有回应form_open('/')

您的表单元素不会包含在 &lt;form&gt; 元素中,因此当您提交时,不会将任何帖子数据发送到服务器,从而导致您的验证失败。

【讨论】:

  • 在真实的代码中,我正在呼应它,这里被错误地省略了。我正在编辑帖子以使代码显示为代码,而不是文本。这里的文本编辑器在这方面相当可怕。对不起。
  • @imploder 文本编辑器中有一个“代码”按钮——突出显示代码并点击它,您选择的所有内容都将被格式化为代码。
【解决方案2】:

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

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

现在可以了。我真的不知道是什么导致了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多