2

ここに示す例のように、動的にオプションを追加しようとしています: https://github.com/google/google-apps-script-samples/tree/master/simple_tasks
ほとんど正確なコードを使用していますが、毎回エラーが発生します:

キャッチされていない TypeError: getter しかない [object Object] のプロパティの長さを設定できません

私のcode.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');
            select.html('');
            var option = '';
            status.forEach(function(elem) {
              option = option + '<option value="'+elem+'">'+elem+'</option>';
            });
            select.append(option);      
            select.prop('disabled', false);
            loadPO();
        }

空でも機能しますコードの下を確認してください

        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);      
        })

HTML コード

    <select id='status' disabled>
          <option>Loading...</option>
        </select>
于 2013-10-17T13:07:23.537 に答える
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 に答える