У меня есть форма с 3-мя переключателями. Идентификаторы уникальны в форме, и все три имеют одинаковое имя, а именно «vehicle_type». Переключатели генерируются правильно, когда я делаю вид источника
<input type="radio" name="vehicle_type" id="type_vehicle" value="1">
<input type="radio" name="vehicle_type" id="type_trailer" value="2" checked>
<input type="radio" name="vehicle_type" id="type_plant" value="3">
У меня нет правила проверки для группы радиостанций, но моя форма жалуется на то, что поле является обязательным.
Я могу подтвердитьчто не существует правила проверки при запуске:
echo $this->form_validation->has_rule('vehicle_type');
Это указывает на отсутствие проверки. Использование этого вызова в другом поле, т. Е. Client_name, возвращает «логическое значение: 1»
Почему поле пытается выполнить проверку, если не задано правило проверки?
EDIT
Я использую Wiredesignz HMVC в своем проекте, поэтому класс Form_validation расширен.
if ($this->form_validation->run($this)) {
$test = do_file_upload($post_data);
} else {
var_dump(validation_errors());
// echos "The Vehicle type field is required"
}
Эта проблема возникает только с переключателями:
Все остальные формы безпереключатели подтверждают правильность, используя ту же проверку: ($this->form_validation->run($this)
Моя проверка формы устанавливается с помощью этой функции:
public function set_form_validation_rules($data)
{
foreach ($data as $field) {
if (!empty($field['validation']['rules'])) {
if (!is_array($field['validation']['rules'])) {
$this->form_validation->set_rules($field['name'], $field['label'], $field['validation']['rules']);
} else {
foreach ($field['validation']['rules'] as $fv) {
$this->form_validation->set_rules($field['name'], $field['label'], $fv);
}
}
}
}
}
И переключатель определяется как:
$data['fields']['type_plant'] = [
'name' => 'vehicle_type',
'id' => 'type_plant',
'input_class' => 'input-group width-100',
'color' => 'red',
'value' => 3,
'validation' => '',
'checked' => ($posts['vehicle_type'] == 3)
];
Два других переключателя в группе одинаковы, просто имеют разные значения и идентификаторы.