如果我用这个
<?= validation_errors(); ?>
结果是
Username field is required
Password field is required
<textbox for username>
<textbox for password>
我实际需要的是显示这些错误与其元素内联
例:
<textbox for username> Username field is required
<textbox for password> Password field is required
为了单独显示错误,您应该使用函数form_error('用户名'(。要获取正在检查的字段的值,请使用函数 set_value('用户名'(。
要使这两个功能正常工作,您必须在控制器中为"用户名"字段设置规则。指定适用于该字段的验证规则的位置。
<?php echo form_error('username'); ?>
<input type="text" name="username" value="<?php echo set_value('username'); ?>">
这是一个关于表单登录的简单教程
这在用户指南中有介绍:
http://codeigniter.com/user_guide/libraries/form_validation.html#individualerrors
单独显示错误
如果您希望在每个表单字段旁边显示错误消息,而不是 比作为列表,您可以使用
form_error()
功能。
因此,如果您的字段名称是 username
,您将使用 form_error('username')
。
重要说明:如果您使用数组作为表单域的名称,则 必须将其作为数组提供给函数。例:
<?php echo form_error('options[size]'); ?>
这是 $this->form_validation->error()
的快捷方式 ,如果您愿意,也可以使用它。
当我搜索这个问题时,我正在寻找一种不同的答案。因此,我想分享我遇到的问题的解决方案,即"如何显示单个验证错误?
解决方案是在每个后续表单验证规则之前运行验证例程。这样,只会报告第一个错误。
$this->form_validation->set_rules('username', 'Username', 'callback_check_username');
if ($this->form_validation->run() == TRUE){
$this->form_validation->set_rules('password', 'Password', 'callback_check_password');
}