selected при создании options через AJAX не работает на Firefox
Список из option
и сам select
создаётся через AJAX, в хроме работает отлично selected
, а вот Firefox отказывается показывать первый пункт выбранный по дефолту. Он показывает пустоту.
Я пробовал такие варианты
1.
document.querySelector("#main-sorting select").setAttribute('autocomplete', 'off');
2.
document.querySelector("#main-sorting option").setAttribute('default', true);
3.
document.querySelector("#main-sorting option").setAttribute('selected', true);
4.
document.querySelector('#main-sorting select option').click()
5. Сделал див, в который вставляется селект в виде
<form name="custom-select" method="POST" id="main-sorting">
Ни один не работает.
Вот, что на выходе получается
<form autocomplete="off" name="custom-select" method="POST" id="main-sorting">
<div class="ais-SortBy">
<select class="ais-SortBy-select" autocomplete="off">
<option class="ais-SortBy-option" value="val1" default="true" selected="true">Default sorting</option>
<option class="ais-SortBy-option" value="val2">Sort by popularity</option>
<option class="ais-SortBy-option" value="val3">Sort by average rating</option>
<option class="ais-SortBy-option" value="val4">Sort by price: low to high</option>
<option class="ais-SortBy-option" value="val5">Sort by price: high to low</option>
</select>
</div>
</form>
Я могу управлять только <form autocomplete="off" name="custom-select" method="POST" id="main-sorting">
, а всё внутри идет с сервера. А так же, атрибуты default="true" selected="true"
добавил скриптом уже после загрузки всего этого:
const send = XMLHttpRequest.prototype.send
XMLHttpRequest.prototype.send = function() {
this.addEventListener('load', function() {
//add default option selected
document.querySelector("#main-sorting").querySelector('select').setAttribute('autocomplete', 'off');
document.querySelector("#main-sorting option").setAttribute('default', true);
document.querySelector("#main-sorting option").setAttribute('selected', true);
document.querySelector('#main-sorting select option').click()
return send.apply(this, arguments)
}
Источник: Stack Overflow на русском