Доступность Html множественного выбора элементов
В нашем веб-приложении у нас есть форма поиска, которая содержит поле, для которого пользователь может выбрать один или несколько ответов из списка возможных параметров. В настоящее время мы используем элемент "select" html с атрибутом "multiple", как показано в следующем примере:
select {
width: 150px;
}
<select multiple>
<option value="A">Alice</option>
<option value="B">Bob</option>
<option value="F">Fred</option>
<option value="K">Kevin</option>
<option value="M">Mary</option>
<option value="S">Susan</option>
</select>
Ответы
Ответ 1
Вместо этого используйте флажки. Все флажки с тем же именем - одна группа (в данном случае names
).
.row {
display:block;
}
<fieldset>
<legend>Select the Names</legend>
<div class="row">
<input type="checkbox" id="names_A" name="names[]" value="A" />
<label for="names_A">Alice</label>
</div>
<div class="row">
<input type="checkbox" id="names_B" name="names[]" value="B" />
<label for="names_B">Bob</label>
</div>
<div class="row">
<input type="checkbox" id="names_F" name="names[]" value="F" />
<label for="names_F">Fred</label>
</div>
<div class="row">
<input type="checkbox" id="names_K" name="names[]" value="K" />
<label for="names_K">Kevin</label>
</div>
<div class="row">
<input type="checkbox" id="names_M" name="names[]" value="M" />
<label for="names_M">Mary</label>
</div>
<div class="row">
<input type="checkbox" id="names_S" name="names[]" value="S" />
<label for="names_S">Susan</label>
</div>
</fieldset>
Ответ 2
Флажки - это, безусловно, предпочтительный вариант, , но это не все, что вам нужно сделать.
Да, вам нужно связать ярлык с каждым элементом, но если у вас есть общий ярлык, например "С кем вы дружите?" вам нужно связать это с группой флажков в целом. Это делается с помощью fieldset
и legend
.
<fieldset>
<legend>Who are you friends with?</legend>
<input type="checkbox" id="alice"><label for="alice">Alice</label><br/>
<input type="checkbox" id="bob"><label for="bob">Bob</label>
</fieldset>
Ответ 3
Это может быть не в тему, но если вы уже используете jQuery
, то есть этот select2 плагин, который вы можете и дает пользователю отчет о том, какие параметры в данный момент выбраны.
Если вы используете prototype.js
, тогда этот chosen плагин, который в значительной степени похож на вышеупомянутый "select2", In факт выбора select2 был выбран из выбранного, и вы также можете использовать выбранный с помощью jQuery
.
Плюсы: -
- Хорошая достойная обратная связь с пользователем по выбранным параметрам.
- Для очень длинного списка параметров предусмотрена функция поиска/автозаполнения.
Минусы: -
- Если вы еще не используете
jQuery
, то потребность/служебные данные должны включать библиотеку, а затем ее плагин.
- Может не работать/создавать конфликт с какой-либо другой библиотекой.