我有一组文本框,如下所示
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
<input type="text" size="10" value="<?php echo set_value('sizes[]'); ?>" name="sizes[]"/>
然后如果我设置如下的验证规则
array(
'field' => 'sizes[]',
'label' => 'SIZES',
'rules' => 'required|xss_clean'
),
然后codeigniter检查每个输入框的值。如果每个文本框都填满,则codeigniter返回true。但是我希望如果其中任何人填满然后返回真实
我该怎么做?
由于
答案 0 :(得分:1)
您可以在控制器中创建自定义验证功能,并对输入执行自己的检查。首先,向控制器添加一个新功能:
function _is_valid($str, $field_name)
{
//First we see if the field name we are checking has multiple values
if (!is_array($this->input->post($field_name)))
return false;
//Let's get the posted values and see if any of them has a value:
foreach ($this->input->post($field_name) as $value)
if (strlen($value)) return true;
//If we get here that means there was no value posted:
return false;
}
接下来,更改字段的规则:
'rules' => 'required|xss_clean'
要:
'rules' => 'callback__is_valid[sizes]|xss_clean'
您可以在此处阅读有关自定义验证功能的更多信息:
[http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#callbacks][1]