我正在尝试为字段创建自定义验证规则。这是一个多重复选框。
<div class="row checkbox-wrapper" id="checkbox-wrapper">
<?php foreach ($facilities as $facility) : ?>
<div class="col-md-6 mb-2">
<div class="custom-control custom-checkbox">
<input type="checkbox" name="list_facility[]" value="<?php echo $facility['id']; ?>">
<label class="custom-control-label"><?php echo $facility['facility_name'] ?></label>
</div>
</div>
<?php endforeach ?>
</div>
所以我尝试使用称为 facility_valdation()
的自定义规则来验证它们 $this->form_validation->set_rules('list_facility', 'Facility List', 'callback_facility_validation');
public function facility_validation($array)
{
if ($array == NULL) {
$this->form_validation->set_message('facility_validation', 'Fasilitas tidak boleh kosong (minimal = 1)');
return FALSE;
} else {
return TRUE;
}
}
错误条件是正确的,每当我将复选框保留为空时,它都会返回消息。但是,如果我尝试选中一个或多个复选框,则会不断收到错误消息。
我尝试将var_dump我的list_facility变量,我已经得到我想要的。如果未选中任何复选框,或者我选中的每个复选框都为一个ID数组,则为NULL。
我已经在另一个控制器中实现了custoiom验证,并且效果很好
答案 0 :(得分:0)
您的表单输入字段是数组,因此您的validate字段也必须是数组。应该是
$this->form_validation->set_rules('list_facility[]', 'Facility List', 'callback_facility_validation');
list_facility[]
而不是list_facility
我已经尝试过并且可以正常工作。希望对您有帮助