it-swarm.com.ru

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

Это работает с Google Chrome и IE, но не с Firefox. По некоторым причинам Chrome и IE разрешают присваивать пустое значение, даже если оно не является частью выпадающего списка.

document.getElementById('dropdownid').value = "";

Обратите внимание, что у меня есть доступ к jQuery, но я не делаю то, что хотел.

$("#dropdownid").val("");

Приведенный выше JQuery не устанавливает пустое значение, поскольку пустое значение не является частью раскрывающихся опций. Мне нужно назначить "" выбранное значение из-за некоторых сторонних проблем с кодом.

Любая идея?

5
ove

Установка selectedIndex в -1 очищает выбор.

document.getElementById('dropdownid').selectedIndex = -1;
8
Tetaxa

Просто измените selectedIndex. НАПРИМЕР:

$(function(){
    $dropdown = $("#dropdownid");
    alert($dropdown.val()); //alerts "2"
    $dropdown[0].selectedIndex = -1; //or document.getElementById('dropdownid').selectedIndex = -1;
    alert($dropdown.val()) //alerts null
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="dropdownid">
    <option value="1">1</option>
    <option value="2" selected="selected">2</option>
    <option value="3">3</option>
</select>

http://jsfiddle.net/kxoytdg8/

2
Moob

Не могли бы вы добавить пустую опцию в выборку перед ее настройкой?

var jqDropdown = $('#dropdownid');
if (!jqDropdown.find('option[value=""]').length) {
  jqDropdown.prepend($('<option value=""></option>'));
}
jqDropdown.val("");
0
Andy

лучший способ - использовать $("#dropdownid").html('');it, чтобы значение было нулевым.

0
aafaq ahmad

Вы пробовали отменить выбор в выборе?

$("#dropdownid option").prop("selected", false);

0
Sumit

2018 jQuery 3.2.1 ответ

Если вы объединяете методы в селекторе jquery, $('#selectId').slideUp(600)[0].selectedIndex = -1 работает (по крайней мере, в Chrome), но мешает моему предпочтению «придерживаться одного синтаксиса/фреймворка». 

Это также работает: $('#selectId').slideUp(600).find('option[selected]').attr('selected', false);

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

0
eon