2

我正在尝试动态添加选项,就像在此处给出的示例中一样:https
://github.com/google/google-apps-script-samples/tree/master/simple_tasks 我使用几乎完全相同的代码,但我每次都会出错:

未捕获的类型错误:无法设置只有 getter 的 [object Object] 的属性长度

我的代码.gs:

function doGet(e) {
  return HtmlService.createTemplateFromFile('index').evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE).setTitle('RepairAdminSysteem');
}

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)
      .getContent();
}

function data() {
  var ss = SpreadsheetApp.openById(SS_ID).getActiveSheet();
  var data = ss.getDataRange().getValues();
  Logger.log(Utilities.jsonStringify(data));
}

function init() {
  var status = ['VERSTUURD','NIET VERSTUURD','AKKOORD','NIET AKKOORD','HERRINNERING','TWEEDE HERRINNERING','GEEN REACTIE','NIET VAN TOEPASSING','PAUZE'].sort();
  return status;
}

我的(相关)html:

<select id='status' disabled>
  <option>Loading...</option>
</select>

和javascript:

<script>
  $(function() {
    $('#status').bind('change', loadPO);
    start();
   });


  function start() {
    google.script.run.withSuccessHandler(success)
      .init();
    }

  function success(status) {
    var select = $('#status');
    select.empty();
    status.forEach(function(elem) {
      var option = $('<option>').attr('value',elem).text(elem);
      select.append(option);      
    });
    select.prop('disabled', false);
    loadPO();
  }

  function loadPO() {
    alert('test');
  }

</script>

如果我更改select.empty();select.html('');一切都按预期工作,但我不明白为什么它在简单任务示例中而不是在我的代码中工作。

我想知道的是为什么这个几乎相同的代码在上面链接中的简单任务应用程序中而不是在我的应用程序中工作?

4

2 回答 2

0
 function success(status) {
            var select = $('#status');
            var option = '';
            status.forEach(function(elem) {
              option = option  '<option value="'+elem+'">'+elem+'</option>';
            });
            select.html(option);      // here html reset by new option
            select.prop('disabled', false);
            loadPO();
        }

参考html()

于 2013-10-17T13:11:34.477 回答
0

尝试这样的事情

       function success(status) {
            var select = $('#status');
            select.html('');
            var option = '';
            status.forEach(function(elem) {
              option = option + '<option value="'+elem+'">'+elem+'</option>';
            });
            select.append(option);      
            select.prop('disabled', false);
            loadPO();
        }

empty 也可以检查下面的代码

        jQuery(function(){
            var select = $('#status');
            //select.html('');
            select.empty();
            var option = '';
          option = option +  '<option value="sad">sdasd</option>';
          option = option  + '<option value="avvsad">sdavvsd</option>';
          option = option   +'<option value="vvv">svvvdasd</option>';
          select.prop('disabled', false);
            select.append(option);      
        })

代码

    <select id='status' disabled>
          <option>Loading...</option>
        </select>
于 2013-10-17T13:07:23.537 回答