假设我有一个登录表单,其中包含用户名和密码字段。这两个字段都需要填写,当您提交表单时,它们有两个不同的行。
用户名字段是必需的。密码字段是必需的。
我想要做的是只显示用户名字段错误,当他们没有任何用户名字段错误时,它将显示密码字段错误。
这将如何完成?
另外,我记得有一种方法可以仅显示有关字段的错误,它的代码段是什么?
假设我有一个登录表单,其中包含用户名和密码字段。这两个字段都需要填写,当您提交表单时,它们有两个不同的行。
用户名字段是必需的。密码字段是必需的。
我想要做的是只显示用户名字段错误,当他们没有任何用户名字段错误时,它将显示密码字段错误。
这将如何完成?
另外,我记得有一种方法可以仅显示有关字段的错误,它的代码段是什么?
我建议使用仅绑定到一个输入的自定义回调函数,它检查两个输入并有条件地设置所需的消息。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class YourController extends CI_Controller {
public function save()
{
//.... Your controller method called on submit
$this->load->library('form_validation');
// Build validation rules array
$validation_rules = array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'trim|xss_clean|callback_required_inputs'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'trim|xss_clean'
)
);
$this->form_validation->set_rules($validation_rules);
$valid = $this->form_validation->run();
// Handle $valid success (true) or failure (false)
if($valid)
{
//
}
else
{
//
}
}
public function required_inputs()
{
if( ! $this->input->post('username'))
{
$this->form_validation->set_message('required_inputs', 'The Username field is required');
return FALSE;
}
else if ($this->input->post('username') AND ! $this->input->post('password'))
{
$this->form_validation->set_message('required_inputs', 'The Password field is required');
return FALSE;
}
return TRUE;
}
}