CodeIgniter表单验证匹配得到太多错误消息

时间:2017-11-14 15:22:03

标签: php forms codeigniter

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

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

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

我能为此做些什么?请帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

正如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]');
}