我在PHP Codeigniter框架下构建了一个Login表单,并设置了验证规则。 规则工作正常,但我想要实现的是不同的东西。
登录表单包含用户名&密码文本框设置在名为 control-group 的容器下。 那些使用Bootstrap框架进行HTML的人非常了解这一点。
所以文本框代码是这样的:
<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包装器放到错误中,以便它可以以红色样式显示。但我想做的其他事情是,我想将错误类应用于控制组。
因此它来自
<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);
}
但它的作用是,它始终将错误类应用于控制组。即使没有提交表格。
知道如何实现这个目标吗?
提前致谢。
答案 0 :(得分:1)
只有在用户提交表单时才必须运行验证。
尝试这样做
if($this->input->post())
{
//your form validation
}
仅在用户提交帖子请求时才会运行。
编辑:
除了在每个字段上填充错误外,还可以使用form_error('field_name')
检查每个字段中的错误并回显错误类
例如
<?=(form_error('field_name')?'error':'')?>