Пустой HTML SELECT без пустого элемента в выпадающем списке

Как реализовать subj?

когда я пишу:

<form>
  <select>
     <option value="0">aaaa</option>
     <option value="1">bbbb</option>
  </select>
</form>

то выбранным по умолчанию элементом является "aaaa"

когда я пишу:

<form>
  <select>
     <option value=""></option>
     <option value="0">aaaa</option>
     <option value="1">bbbb</option>
  </select>
</form>

то выбранный по умолчанию элемент пуст, но этот пустой элемент отображается в раскрывающемся списке.

как я могу реализовать тег SELECT с пустым значением по умолчанию, которое скрыто в выпадающем списке?

Ответ 1

Просто используйте отключенные и/или скрытые атрибуты:

<option selected disabled hidden style='display: none' value=''></option>
  • selected делает этот параметр по умолчанию.
  • disabled делает эту опцию незаметной.
  • style='display: none' эта опция не отображается в старых браузерах. Смотрите: Могу ли я использовать документацию для скрытого атрибута.
  • hidden делает эту опцию не отображаемой в раскрывающемся списке.

Ответ 3

Просто используя

<option value="" selected disabled>Please select an option...</option>

будет работать в любом месте без script и позволит вам проинструктировать пользователя одновременно.

Ответ 4

<select>
     <option value="" style="display:none;"></option>
     <option value="0">aaaa</option>
     <option value="1">bbbb</option>
  </select>

Ответ 5

Вот простой способ сделать это, используя простой JavaScript. Это ванильный эквивалент jQuery script, отправленный pimvdb. Вы можете протестировать его здесь.

<script type='text/javascript'>
  window.onload = function(){
    document.getElementById('id_here').selectedIndex = -1;
  }
</script>

.

<select id="id_here">
  <option>aaaa</option>
  <option>bbbb</option>
</select>

Убедитесь, что "id_here" соответствует форме и JavaScript.

Ответ 6

Вы не можете. Они просто так не работают. Выпадающее меню должно иметь один из выбранных вариантов.

Вы можете (хотя я и не рекомендую его) наблюдать за событием изменения, а затем использовать JS для удаления первой опции, если она пуста.

Ответ 7

Для чисто html @isherwood есть отличное решение. Для jQuery отпустите выделение, затем выберите его с помощью jQuery:

<form>
  <select id="myDropDown">
    <option value="0">aaaa</option>
    <option value="1">bbbb</option>
  </select>
</form> 

Затем используйте этот jQuery, чтобы очистить выпадающее меню при загрузке страницы:

$(document).ready(function() {
    $('#myDropDown').val(''); 
});

Или поместить его внутри функции самостоятельно:

$('#myDropDown').val(''); 

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

Ответ 8

Вы можете попробовать этот фрагмент

$("#your-id")[0].selectedIndex = -1

Это сработало для меня.