我使用的是CI 3.1.7,如果有错误,我想停止验证表单。例如:
$config = array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'required',
'errors' => array(
'required' => '%s is required',
),
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'required',
'errors' => array(
'required' => '%s is required',
),
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'required',
'errors' => array(
'required' => '%s is required',
),
)
);
当用户将 username 和 email 留空时,表格将仅显示 username是必需的。感谢您的任何帮助,谢谢!
答案 0 :(得分:1)
您无法停止validation->run()
,但可以控制显示哪个错误消息。限制是您不能在相关字段旁边显示错误。或者,我应该说,我想不出一种简单的方法来在错误所属的输入旁边显示错误。
无论如何,这是提取第一条错误消息的方法。
if($this->form_validation->run() == FALSE)
{
$errors = $this->form_validation->error_array();
// There could be many but grab only the first
$fields = array_keys($errors);
$err_msg = $errors[$fields[0]];
}
如果您想要字段的名称,可以使用它。
$err_field = $fields[0];
答案 1 :(得分:0)
如果我的问题是对的..您想停止遇到的第一个表单验证错误,则必须编辑核心表单验证库,这是非常糟糕的做法,但是幸运的是,您可以扩展其功能并编辑{{ 1}}方法本身或创建自己的方法,然后复制run()
代码并编辑以下代码块:
run()
现在,当发现第一个错误时它将停止执行
答案 2 :(得分:-1)
请检查
public function __construct()
{
parent::__construct();
// load form and url helpers
$this->load->helper(array('form', 'url'));
// load form_validation library
$this->load->library('form_validation');
}
或选中https://code.tutsplus.com/tutorials/codeigniter-form-validation-from-start-to-finish--cms-28768