我有关于表单验证匹配的错误消息问题。 这是我设置的内容:
$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.
我收到两条消息而不是一封。 我只需要“密码字段是必需的”。仅
我能为此做些什么?请帮助,谢谢。
答案 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]');
}