codeigniter:当有表单验证错误时更改html类?

时间:2012-01-23 19:04:20

标签: codeigniter validation

使用CodeIgniter的表单验证时,我发现有一个form_error()函数用于打印出错误(如果存在),如果没有则打印出一个空的html标记。如果特定字段存在错误,是否有一种简单的方法可以进行布尔测试?我想更改输入元素本身的类,而不是只打印出错误。实现这一目标的最佳方法是什么?

5 个答案:

答案 0 :(得分:4)

我不是可以测试它的地方,但这不会起作用吗?

<?php
if (!empty(form_error('username')))
{
    $class = "error";
}
else
{
    $class = "valid";
}
?>

<input type="text" name="username" class="<?= $class ?>" value="<?= set_value('username') ?>" />

答案 1 :(得分:2)

查看源(https://github.com/EllisLab/CodeIgniter/blob/v2.1.0/system/libraries/Form_validation.php的第207行),如果没有与给定字段关联的错误,form_error()将返回空字符串。您可以检查该方法返回的内容,并将其用作更改元素类的条件。

答案 2 :(得分:1)

这对我有用

<?php 
if(form_error('field_name') != '')
{
   $class = 'error';
}

不确定为什么这会起作用!empty抛出错误:在写上下文中不能使用函数返回值。

答案 3 :(得分:1)

我以这种方式使用它

<div class="control-group <?php if (form_error('group')!="") echo "error"; ?>">

答案 4 :(得分:0)

另一个选项可以是父元素的样式。

e.g。

我使用了twitter bootstrap,所以这里是代码

<div class="controls">
  <input type="text" name="dob" id="dob">
  <?php echo form_error('dob'); ?>
</div>

设置错误的样式我只是将其添加到css

> .controls p {  color : red; }

错误元素显示在p标记中。 希望它有所帮助。