Как создать список в HTML без возможности множественного выбора?


97

У меня нет большого опыта в HTML. Я хочу создать простой список, но одно из требований - ЗАПРЕТИТЬ множественный выбор. Большая часть кода для списков выглядит так:

 <select name="sometext" multiple="multiple">
    <option>text1</option>
    <option>text2</option>
    <option>text3</option>
    <option>text4</option>
    <option>text5</option>
 </select>

Но это позволяет множественный выбор.

Здесь был задан аналогичный вопрос, но лучший ответ был отклонен. Так что я не знаю, как еще это можно сделать. Пожалуйста помоги.


5
Что касается вас, других новичков, пожалуйста, избегайте вышеупомянутого веб-сайта для вашего же блага - у них хорошее SEO, но это все. Он пронизан дурными практиками и привычками, о которых вы потом пожалеете. Используйте API от MDN (Mozilla), в данном случае developer.mozilla.org/en-US/docs/Web/HTML/Element/select .
Бен

3
@ Стив, спасибо за предупреждение. Его комментарий «Вот почему у меня есть работа» тоже прозвучал высокомерно. Если у вас есть работа, хорошо для вас. Это форум для ответов, а не для рекламы.
CodeBlue

Ответы:


170

Просто используйте атрибут размера:

<select name="sometext" size="5">
  <option>text1</option>
  <option>text2</option>
  <option>text3</option>
  <option>text4</option>
  <option>text5</option>
</select>

Чтобы уточнить, добавление атрибута размера не устраняет множественный выбор.

Одиночный выбор работает, потому что вы удалили атрибут multiple = "multiple".

Добавление атрибута size = "5" по-прежнему является хорошей идеей, это означает, что должно отображаться не менее 5 строк. См. Полную ссылку здесь


2
Проголосовали за правду. Кроме того, когда вопрос был опубликован ранее, это решение, возможно, не так широко поддерживалось всеми браузерами.
aaroncatlin

Вероятно, он был отклонен, потому что в стандартах HTML нет ничего, что требовало бы, чтобы браузер отображал его как список, если установлен атрибут размера. Да, все основные браузеры в настоящее время работают, но нет никакой гарантии, что они будут всегда. Однако на самом деле это было бы критическим изменением для стольких веб-сайтов, что ни один браузер вряд ли его изменит.
Elezar

1
Стандарт открыт для небольшой интерпретации: «Размер отображения элемента select является результатом применения правил синтаксического анализа неотрицательных целых чисел к значению атрибута size элемента , если он есть, и его синтаксический анализ успешен». Хотя в нем конкретно не указано, что он должен отображаться как раскрывающийся список или список, было бы трудно отобразить элемент управления раскрывающимся списком, который показывает более 1 элемента. ( html.spec.whatwg.org/#the-select-element )
aaroncatlin

Спасибо!! И это может быть динамичным, очевидно, с Js: D
Jcc.Sanabria


2

Для Asp.Net MVC

@Html.ListBox("parameterName", ViewBag.ParameterValueList as MultiSelectList, 
 new { 
 @class = "chosen-select form-control"
 }) 

или

  @Html.ListBoxFor(model => model.parameterName,
  ViewBag.ParameterValueList as MultiSelectList,
   new{
       data_placeholder = "Select Options ",
       @class = "chosen-select form-control"
   })
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.