0

我在 PHP Codeigniter 框架下构建了一个登录表单,并设置了它的验证规则。规则运行良好,但我想要实现的是不同的东西。

登录表单在名为control-group的容器下设置了用户名和密码文本框。那些使用 HTML 的 Bootstrap 框架的人都非常清楚这一点。

所以文本框代码是这样的:

<div class="control-group">
    <label for="username">Username:</label>
    <input type="text" id="username" name="username" value="" placeholder="Username" class="login username-field" />
    <?php echo form_error('username','<span class="help-inline error">', '</span>'); ?>
</div>

您可以看到我也将 span 包装器放置到错误中,以便它可以以红色样式显示。但我想做的另一件事是,我想将错误类应用于control-group

让它从

<div class="control-group">

<div class="control-group error">

我已经尝试过使用$error_class变量并像这样从 Controller 传递它。

$data['error_class'] = '';
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');

if ($this->form_validation->run() == FALSE){
    $data['error_class'] = 'error';
    $this->load->view('administrator/login_view', $data);
}

但它所做的是,它一直将错误类别应用于对照组。即使没有提交表格。

知道如何实现这一目标吗?

提前致谢。

4

1 回答 1

1

您必须仅在用户提交表单时运行验证。

尝试这样做

if($this->input->post())
{
 //your form validation
}

这只会在用户提交发布请求时运行。

编辑:

除了在每个单独的字段上填充错误之外,还可以form_error('field_name')用于检查每个单独的字段中的错误并回显错误类

例如。

<?=(form_error('field_name')?'error':'')?>
于 2013-01-21T04:46:58.573 回答