-1

如何在谷歌应用程序脚本中创建一个下拉菜单,以便下一个下拉菜单只显示关于第一个的特定条目。就像我在第一个下拉列表中选择印度作为国家,然后在第二个只有印度州列表被填充。

4

1 回答 1

0

你在想这样的事情吗?

代码很简单,在list1触发的一个handler函数中将item添加到list 2

数据在二维数组中定义。这是这个小演示应用程序的完整代码。

      var subItems = [['subCategory 1 of 1','subCategory 2 of 1','subCategory 3 of 1','subCategory 4 of 1'],['subCategory 1 of 2','subCategory 2 of 2','subCategory 3 of 2','subCategory 4 of 2'],
                      ['subCategory 1 of 3','subCategory 2 of 3','subCategory 3 of 3']];

function doGet() {
  var app = UiApp.createApplication().setTitle('test listBox');
  var panel = app.createHorizontalPanel().setStyleAttribute('padding','40px');
  var sHdlr = app.createServerHandler('updatelist').addCallbackElement(panel);
  var items = ['category 1','category 2','category 3'];
  var list1 = app.createListBox().setName('list1').setId('list1').addChangeHandler(sHdlr);
  var list2 = app.createListBox().setName('list2').setId('list2').addItem(' .  .  .  .  .  .  .  .  .').setStyleAttribute('marginLeft','40px');
  for(var i =0;i<items.length;++i){list1.addItem(items[i],i)}
  panel.add(list1).add(list2);
  app.add(panel);
  return app;
}    
    function updatelist(e){
      var app = UiApp.getActiveApplication();
      var orig = e.parameter.source;
      if(orig=='list1'){
        var listVal = Number(e.parameter[orig]);
        var list2 = app.getElementById('list2').clear();
          for(var i =0;i<subItems[listVal].length;++i){
            list2.addItem(subItems[listVal][i],i);
            }
          }else{
        //do something else
        }
    return app;
    }
于 2013-06-25T16:14:59.380 回答