5

如果我用这个

<?= 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
4

3 回答 3

8

为了单独显示错误,您应该使用函数form_error('username')。为了让您获得正在检查的字段的值,请使用函数set_value('username')

要使这两个功能起作用,您必须在控制器中为“用户名”字段设置规则。您指定适用于该字段的验证规则的位置。

<?php echo form_error('username'); ?>
<input type="text" name="username" value="<?php echo set_value('username'); ?>">

这是一个关于表单登录的简单教程

于 2012-05-19T05:59:41.277 回答
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(),您也可以根据需要使用它。

于 2012-05-19T02:44:56.967 回答
-1

当我搜索这个问题时,我正在寻找一种不同的答案。所以我想分享我对我遇到的问题的解决方案,即“如何显示单个验证错误?”

解决方案是在每个后​​续表单验证规则之前运行验证例程。这样只报告第一个错误。

        $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');
        } 
于 2017-05-25T19:25:25.547 回答