2012-01-23 63 views
3

使用CodeIgniter的表單驗證時,我發現有一個form_error()函數用於打印出一個錯誤(如果存在),如果不存在,則返回一個空的html標記。如果某個特定領域存在錯誤,是否有簡單的方法來進行布爾測試?我想改變輸入元素本身的類,而不是僅僅打印出一個錯誤。什麼是完成這個最好的方法?codeigniter:當存在表單驗證錯誤時更改html類?

回答

4

我不是在哪裏我可以測試這個,但不會工作?

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

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

我剛剛面臨類似的問題,因爲我正在重寫自定義的表單庫。沒有辦法訪問表單驗證類的'_error_array',這有點煩人 - 你必須使用其中一個輸出字符串的函數。我必須在'error_delmiters'設置爲空(在使用'validation_errors()''的錯誤之間的CI硬碼'\ n')之後用'explode(「\ n」,validation_errors())''創建我自己的數組,甚至包括哪個字段有錯誤,只是消息。很長時間以來,我認爲你必須做這樣的事情,儘管它並不完美。 –

1

這對我的作品

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

不知道爲什麼這個工程時,空引發錯誤:在寫情況下不能使用函數返回值。

1

我使用這種方式

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

略短:'<?= form_error('group')? '錯誤':''?>' – Justin

0

另一種選擇可能是風格的父元素。

例如

我使用Twitter的引導所以這裏是代碼

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

的風格我只是說此錯誤的錯誤元素在P標籤所示的CSS

> .controls p { color : red; } 

。 希望它有助於。