Обновите параметры выбора с заданными динамическими данными - PullRequest
0 голосов
/ 05 июня 2019

Необходимо отправить динамические (не жесткие) данные в элемент выбора.

Этот код прекрасно работает на одном из моих листов, но не работает на другом листе .

Элемент "select" не обновляется с опциями, которые я отправляю. . Я тоже не получаю сообщение об ошибке.

Я потратил много времени, дёргая его и пытаясь выяснить, почему, но всё ещё не понимаю, что не так.

p.s. Я использовал фиктивный объект для отправки данных в целях тестирования.

HTML (используется MaterializeCss framework)

<select class="icons browser-default" id="selName" onChange ="getNameText();">  
  <option value="" disabled selected>Choose week</option>

 <div id = "err"></div>

//select element initialization in framework
document.addEventListener('DOMContentLoaded', function() {
  var elems = document.querySelectorAll('select');
  var options = handlers()
  var instances = M.FormSelect.init(elems);
});

function handlers() {

  var success = google.script.run.withSuccessHandler(addOptions).getNamesForDropdown()
  var failure = google.script.run.withFailureHandler(showError).getNamesForDropdown()

  return;
}

function addOptions(names) {

  var selectTag = document.getElementById("selName") //select tag

     for (var k in names) {        
         var thisID = k;
         var thisText = names[k];
         var option = document.createElement("option"); //creating option        
         option.text = thisText
         option.value = thisID;
         selectTag.add(option);
     }
}

function showError() {

  var err = document.getElementById("err").innerHTML = "There was an error."
}


//get the text of selected option
function getNameText() {

  var sel = document.getElementById("selName")

  var nameText = sel.options[sel.selectedIndex].text;

  return nameText;
}

Пустой объект, который я отправляю:

function getNamesForDropdown() {

  var namesObj = {
    
    one: "blah",
    two: "blahblah"    
  }

  return namesObj;
}

Вот результат, который я получаю (на экране у вас есть только жестко закодированный вариант):

enter image description here

1 Ответ

0 голосов
/ 05 июня 2019

Я справился с этим.Я добавил класс "browser-default" к select и параметры были обновлены.Этот класс взят из MaterializeCss Framework.

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