如果我使用了这个
<?= 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
答案 0 :(得分:7)
为了单独显示错误,您应该使用 form_error('username')功能。并且为了获得正在检查的字段的值,请使用函数 set_value('username')。
要使这两个功能起作用,您必须在控制器中为“用户名”字段设置规则。如果您指定验证规则适用于该字段。
<?php echo form_error('username'); ?>
<input type="text" name="username" value="<?php echo set_value('username'); ?>">
答案 1 :(得分:4)
用户指南中对此进行了介绍:
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()
的快捷方式,如果您愿意,也可以使用。
答案 2 :(得分:-1)
当我搜索这个问题时,我正在寻找一种不同的答案。所以我想分享我的解决方案,解决我遇到的问题&#34;如何显示单个验证错误?&#34;
解决方案是在每个后续表单验证规则之前运行验证例程。这样只会报告第一个错误。
$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');
}