【问题标题】:CodeIgniter Form Validation matches got too many error messagesCodeIgniter 表单验证匹配得到太多错误消息
【发布时间】:2018-04-27 14:43:45
【问题描述】:

我有一个关于表单验证匹配的错误消息问题。 这是我设置的:

$this->load->library('form_validation');
$this->form_validation->set_rules('password', 'Password', 'required|trim');
$this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');

当然,我有一个带有两个密码输入字段的表单。

form_password('password');
form_password('cpassword');

我正在使用 validation_errors() 函数处理错误消息。

如果我让两个密码字段为空,我得到:

The Password field is required.
The Confirm Password field is required.

如果我输入密码并将确认密码字段留空,我得到:

The Confirm Password field is required.

到目前为止一切顺利,直到:

我在确认密码字段中输入一些内容并将密码字段留空,我得到了:

The Password field is required.
The Confirm Password field does not match the Password field.

我收到了两条消息,而不是一条。 我只需要“密码字段是必需的”。仅限。

我可以为此做些什么?请帮忙,谢谢。

【问题讨论】:

  • 在 if 语句中包装确认,如果密码 !empty 然后将其添加为下一条规则。
  • 也向我们展示您的观点
  • 好的。刚刚更新。

标签: php forms codeigniter


【解决方案1】:

在我自己的应用程序中,我设置了这样的验证规则

$this->form_validation->set_rules('password', 'Password', 'required|trim|matches[cpassword]');
$this->form_validation->set_rules('cpassword', 'Confirm Password', 'trim');

密码是必需的,因为它必须与 cpassword 匹配,所以您默认验证 cpassword。

【讨论】:

  • 谢谢。但是修改到上面几乎会出现同样的问题。
【解决方案2】:

正如 James Lalor 上面所说的。这是工作代码。

$this->load->library('form_validation');
$this->form_validation->set_rules('password', 'Password', 'required|trim');
$this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim');

if (!empty($this->input->post('password'))) {
    $this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-22
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 2013-09-05
    • 1970-01-01
    相关资源
    最近更新 更多