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