Проверка группы флажков на стороне клиента Joomla 3

Я пытаюсь использовать встроенный валидатор формы Joomla (версия 3.4.3): JHTML::_('behavior.formvalidator');

Я пытаюсь применить его для динамически генерируемой формы. Он отлично работает для выпадающих меню и текстовых полей. Но когда (скажем) у меня есть группа из 4 флажков, и я хочу, чтобы пользователь выбрал хотя бы 1 из 4, я столкнулся с проблемой... Сайт просит пользователя выбрать ВСЕ 4 флажка. Вот сгенерированный HTML-код:

<label title="Checked out?" class="hasTooltip required" for="jform_checked-out_cbv_qwq4-473" id="checked-out_cbv_qwq4-473-lbl">Checked out? <span class="star">*</span></label>
<input type="checkbox" name="checked-out_cbv_qwq4-473[]" id="checked-out_cbv_qwq4-473" value="Yes" class="required" aria-required="true" required="required"> Yes
<input type="checkbox" name="checked-out_cbv_qwq4-473[]" id="checked-out_cbv_qwq4-473" value="No" class="required" aria-required="true" required="required"> No
<input type="checkbox" name="checked-out_cbv_qwq4-473[]" id="checked-out_cbv_qwq4-473" value="maybe" class="required" aria-required="true" required="required"> maybe
<input type="checkbox" name="checked-out_cbv_qwq4-473[]" id="checked-out_cbv_qwq4-473" value="of course not" class="required" aria-required="true" required="required"> of course not

Когда я пытаюсь отправить форму, я получаю следующие сообщения об ошибках:

Недопустимое поле: Извлечено?
Недопустимое поле: Извлечено?
Недопустимое поле: Извлечено?
Недопустимое поле: Извлечено?

Что я здесь делаю неправильно?


person gtsongi    schedule 03.08.2015    source источник


Ответы (1)


Каждый из ваших элементов ввода имеет один и тот же идентификатор «checked-out_cbv_qwq4-473». Атрибут id должен быть уникальным.

Пример кода набора полей с флажками:

<div class="control-group">
<div class="control-label">
    <label id="mycheckboxes-lbl" for="mycheckboxes" class="required">Checked out?<span class="star">&nbsp;*</span></label>
</div>
<div class="controls">
    <fieldset id="mycheckboxes" class="checkboxes required" required="required" aria-required="true">
        <ul>
            <li>
                <input type="checkbox" id="checkbox_1" name="myform_checkboxes[]" value="Yes">
                <label for="checkbox_1">Yes</label>
            </li>
            <li>
                <input type="checkbox" id="checkbox_2" name="myform_checkboxes[]" value="No">
                <label for="checkbox_2">No</label>
            </li>
            ...
        </ul>
    </fieldset>
</div>

person arbogastes    schedule 04.08.2015
comment
Да, я думал об этом, но если я назначу уникальный идентификатор для каждого отдельного флажка, то каким должен быть идентификатор для метки? Я думаю, они должны быть похожи, чтобы отображалось поле Invalid: Checked? сообщение об ошибке. Или я ошибаюсь? - person gtsongi; 04.08.2015
comment
Проверено? метка должна принадлежать набору полей, этот набор полей должен иметь ваши флажки, каждый флажок должен иметь собственную метку. Fieldset должен быть обязательным не для каждого флажка. - person arbogastes; 04.08.2015