Как получить данные из листа в раскрывающийся список - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь создать раскрывающийся список (выбрать) и получить параметры из листа, но не могу заставить его работать. На самом деле проблема в том, что мне нужно дождаться окончания script.run до sh, прежде чем я добавлю в выбор. Поэтому я переместил добавление в successhandler-function, но почему-то оно ничего не делает. Если я запускаю его, как это, я получаю только опции 1 и 2.

Мой документ выглядит так:

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

 <!DOCTYPE html>
  <html>
    <head>
      <!--Import Google Icon Font-->
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

     <!-- Compiled and minified CSS -->
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

      <!--Let browser know website is optimized for mobile-->
      <meta dato="viewport" content="width=device-width, initial-scale=1.0"/>


    </head>
    <body>

    <div class="container">

       <div class="row">

         <form action="/action_page.php" id="inputform">

            <div class="input-field">          
              <input id="tekst" type="text" class="validate">
              <label class="active" for="tekst">Tekst</label>
            </div>

            <div class="input-field">

              <select name="Choose" id="Choose"> 
              <option value="" selected disabled hidden> Choose</option> 

              </select> 
            </div>         

          </form><!--- end form


            <!-- Compiled and minified JavaScript -->
       <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
       <script>

        document.addEventListener('DOMContentLoaded', function() {
            var elems = document.querySelectorAll('select');
            var instances = M.FormSelect.init(elems);
            var instance = M.FormSelect.getInstance(elem);            
        });


         var konto = "Choose";
         var x = document.getElementById("Choose");        
         var option = document.createElement("option");
         option.text = "Option 1";
         x.add(option);        

         google.script.run.withSuccessHandler(fillOption).getOption();

         var option = document.createElement("option");
         option.text = "Option 2";
         x.add(option);


         function fillOption(){  

            var konto = "Choose";
            var x = document.getElementById("Choose"); 
            var option = document.createElement("option");
            option.text = "Option 3";
            x.add(option);

         }  

      </script>   
   </body>
  </html>

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

 function onOpen() {

 var template = HtmlService.createTemplateFromFile("userform");

var html = template.evaluate();

 html.setTitle("Just testing select").setHeight(500).setWidth(700);

 SpreadsheetApp.getUi().showModelessDialog(html, "testing");

}

function getOption() {    

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