- Как разрешить только один элемент выбран? - PullRequest
129 голосов
/ 17 марта 2011

У меня есть поле <SELECT multiple> с несколькими опциями, и я хочу, чтобы в нем одновременно была выбрана только одна опция, но пользователь может удерживать клавишу CTRL и выбирать больше элементов одновременно.

Есть ли способ, как это сделать? (Я не хочу удалять «несколько»).

Ответы [ 7 ]

266 голосов
/ 17 марта 2011

Только не делайте его кратным, а устанавливайте для него размер, например:

  <select name="user" id="userID" size="3">
    <option>John</option>
    <option>Paul</option>
    <option>Ringo</option>
    <option>George</option>
  </select>

Рабочий пример: https://jsfiddle.net/q2vo8nge/

24 голосов
/ 17 марта 2011

Если пользователь должен выбрать только одну опцию одновременно, просто удалите «несколько» - сделайте нормальный выбор:

  <select name="mySelect" size="3">
     <option>Foo</option>
     <option>Bar</option>
     <option>Foo Bar</option>
     <option>Bar Foo</option>
  </select>

Fiddle

9 голосов
/ 17 марта 2011

Почему вы не хотите удалить атрибут multiple? Вся цель этого атрибута состоит в том, чтобы указать браузеру, что из данного элемента select может быть выбрано несколько значений. Если нужно выбрать только одно значение, удалите атрибут, и браузер узнает, что разрешен только один выбор.

Используйте инструменты, которые у вас есть, вот для чего они нужны.

1 голос
/ 13 мая 2016
<select name="flowers" size="5" style="height:200px">
 <option value="1">Rose</option>
 <option value="2">Tulip</option>
</select>

Это простое решение позволяет визуально получить список опций, но иметь возможность выбрать только один.

1 голос
/ 11 января 2016

У меня были некоторые отношения с select \ multi-select, вот что помогло мне

<select name="mySelect" multiple="multiple">
    <option>Foo</option>
    <option>Bar</option>
    <option>Foo Bar</option>
    <option>Bar Foo</option>
</select>
1 голос
/ 28 мая 2015

Я приду сюда после поиска в Google и изменения в my-end.

Так что я просто изменил этот пример, и он будет работать с jquery во время выполнения.

$('select[name*="homepage_select"]').removeAttr('multiple')

http://jsfiddle.net/ajayendra2707/ejkxgy1p/5/

1 голос
/ 17 марта 2011

По умолчанию требуется только один параметр, но пользователь может выбрать несколько параметров, нажав клавишу CTRL.Это (уже) именно так, как должен вести себя множественный SELECT.

См .: http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select_multiple

Не могли бы вы уточнить ваш вопрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...