Codeigniter验证错误在输入中使用0值时

时间:2012-04-25 16:00:15

标签: forms codeigniter codeigniter-2 codeigniter-form-helper

我认为codeigniter表单验证类中存在一个错误。

如果值大于零,我的代码工作正常,但如果它为“0”,则set_value函数不起作用:

控制器:

  $this->form_validation->set_rules('age', 'Age', 'required|is_natural');

查看:

<?  if(set_value('age')) { ?>           
<input id="age" name="age" type="text" value="<?=set_value('age')?>" />                                          
<? } else { ?>
<input id="age" name="age" type="text" value="Age" /> 
<? } ?> 

我做错了什么或这是一个错误?

1 个答案:

答案 0 :(得分:1)

当值为0时,您的表单字段不会重新填充,因为您的if语句会将其评估为FALSE,然后输出不带value属性的表单字段。

所以,摆脱if声明。你只想要这个:

<input id="age" name="age" type="text" value="<?=set_value('age')?>" />

set_value()将返回值(如果提供了一个值),默认值或空字符串(如果没有提供值)。