Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   динамическое обновление select при нажатие. (https://javascript.ru/forum/dom-window/66760-dinamicheskoe-obnovlenie-select-pri-nazhatie.html)

dima85 08.01.2017 23:01

динамическое обновление select при нажатие.
 
Есть select в нем onchange который запускает функцию и добавляет в select новые элементы
Примерно так:
document.getElementById("select").innerHTML =+ '<option value="'+val2+'">'+values+'</option>';


На компьютере во всех браузерах код работает.
А вот в телефонах почему-то список не обновляется.

В jquery есть замечательная функция:
$("#select").selectmenu('refresh');
Которая решила бы мою проблему, но я не использую jquery, можно ли что-то подобное сделать без дополнительных библиотек.

рони 08.01.2017 23:10

а без
Цитата:

Сообщение от dima85
innerHTML

пробовали?

dima85 08.01.2017 23:12

Пробовал еще так:
var x = document.getElementById("select");
var option = document.createElement("option");
option.text = "Kiwi";
x.add(option);


В мобильном Chrome работает! В мобильном firefox список не обновляет. Нужно его закрыть и потом снова открыть, потом появится.

Вызываю событие через onFocus

рони 08.01.2017 23:47

dima85,
а так ?
var x = document.getElementById("select");
    x.options[x.options.length]= new Option("Kiwi", "Kiwi");

dima85 08.01.2017 23:55

К сожалению в мобильном Firefox не работает.


//если я в этой строчке добавляю в select, все работает во всех браузерах
 jsons.open('GET','/find.json',true);
 jsons.send(null);
 jsons.onload = function(e) {

//Но мне необходимо добавлять здесь в select, т.к. тут я получаю данные с find.json. 

}

рони 09.01.2017 00:00

dima85,
не могу ничего добавить

dima85 09.01.2017 00:14

Рони, подскажите, а может есть в javascript что-то что позволяет закрыть select лист, а потом снова его открыть? Таким образом я смогу решать свою проблему.

рони 09.01.2017 00:29

dima85,
http://javascript.ru/forum/jquery/18...tml#post111330


Часовой пояс GMT +3, время: 14:53.