Intereting Posts
Является ли привязанный тег без атрибута href безопасным? Как я могу получить div, который рассматривает разрывы строк как значимые для прокрутки, если он превышает определенную высоту? Как я могу программным образом изменить выбор windows выбора из собственного события изменения элемента управления и работать в мобильных браузерах Изображение, картинка не полностью нажата в IE bootstrap 3 кнопка смены навигационной панели не работает Фильтровать цвета с помощью ввода флажка в JavaScript Javascript цикл через ВСЕ HTML выберите $ .cookie не является функцией typeerror Flash принимает события мыши под элементом HTML, когда набор непрозрачности Как избежать странных символов перед запросом в firefox? Itemscope и itemprop на том же уровне Добавление столбца в таблицу, создаваемую функцией JQuery из CSV Почему это ясно: оба действуют глобально? Как скрыть вложенную папку при перезаписи URL-адресов недостижимый элемент в выпадающем меню ie8

Я делаю это неправильно, или есть ошибка в библиотеке проверки формы CodeIgniter при использовании массивов в качестве имен полей?

Вот мой код controllerа для настройки правил:

// Previous address(es) $this->form_validation->set_rules('prev_house_number[]', 'House Number', 'trim|alpha_numeric'); $this->form_validation->set_rules('prev_abode[]', 'Abode', 'trim'); $this->form_validation->set_rules('prev_house_name[]', 'House Name', 'trim'); $this->form_validation->set_rules('prev_address_line_1[]', 'Address Line 1', 'required|trim'); $this->form_validation->set_rules('prev_address_line_2[]', 'Address Line 2', 'trim'); $this->form_validation->set_rules('prev_city[]', 'Town/City', 'required|trim'); $this->form_validation->set_rules('prev_county[]', 'County', 'trim'); $this->form_validation->set_rules('prev_postcode[]', 'Postcode', 'required|max_length[9]|trim'); $this->form_validation->set_rules('prev_country[]', 'Country', 'trim'); $this->form_validation->set_rules('prev_months[]', 'Previous Months', 'trim|integer'); $this->form_validation->set_rules('prev_years[]', 'Previous Years', 'trim|integer'); 

Пользователь может ввести до 5 предыдущих адресов:

Проверка формы

Код, лежащий в поле Адресная строка 1, выглядит следующим образом:

 
<input type="text" class="address_line_1 postcode_prev_address_1" id="prev_address_line_1[]" name="prev_address_line_1[]" value=""/>

Вот проблема: предположим, что у меня введено 5 адресов, а валидация не будет выполнена в форме, все пять областей ввода будут правильно перезаписаны, как и ожидалось. Однако проверка CodeIgniter не будет работать с массивными входами .

Вот скриншот сразу после проверки:

ошибка проверки формы

Как вы можете видеть, хотя он репопулирует форму с правильными значениями, она не применяет к ней правила проверки и, по-видимому, не распознает их существование внутри controllerа.

Что я могу сделать?

Благодаря!

разъем

Похоже, это коммит, о котором говорит Фил: https://github.com/EllisLab/CodeIgniter/commit/5c561805bd9ae6a4ad5d202277c34a879617b683#system/libraries/Form_validation.php

Попробуйте вытащить код из ветви разработки для библиотеки проверки формы и посмотреть, не заботится ли она об этой проблеме.