自定义Codeginter表单验证类Form_validation
本帖最后由 longjianghu 于 2012-10-18 17:43 编辑最近在开发项目的时候发现CI表单验证类(Form_validation.php)在验证数组的时候存在BUG。所以在此写下此做为记录。html示例代码需要验证以下表单项(只是示例实际项目中并非如此):
<ul>
<li><label for="nickname">昵称</label><input type="text" name="nickname" id="nickname" value="" /></li>
<li>
<label for="">喜欢的运动:</label>
<input type="text" name="sports[]" value="" />
<input type="text" name="sports[]" value="" />
</li>
<li><label for="">Email:</label><input type="text" name="user" value="" /></li>
</ul>
PHP验证规则如下(昵称必须填写,喜欢的运动和电子邮箱可以选填):
$this->form_validation->set_rules('nickname', 'Nickname', 'required');
$this->form_validation->set_rules('sports[]', 'Sports', 'min_length');
$this->form_validation->set_rules('user', 'Email', 'valid_email');
当我们运行程序的时候发现运动和电子邮箱成了必选项,这并不是我想要的效果。
The Nickname field is required.The Sports field must be at least 2 characters in length.The Email field must contain a valid email address.
修改之后的效果如下:The Nickname field is required.这才是我想要的效果。暂时还没有发现BUG。验证数组目前只支持sports[]或者food两种方式,多维数组暂未考虑。使用方法:下载附件把Form_validation.php文件放到你的application/libraries目录下。
页:
[1]