2016-04-29 36 views
0

我有一个HtmlService表单,它从用户获取数据。HtmlService表单 - 动态DropdownList

表单中有多个dropdownlist

如果用户已经在第一个dropdownlist中选择了,是否可以从后续的dropdownlist中消除选择? google.script.run能做到吗?

+0

这有一点做与瓦斯,更多的是用JavaScript。当用户点击某些内容或选择某些内容时,请查看有关通过JavaScript删除或向网站添加元素的问题。应该有几百个非常具体的答案。 –

+0

但是,由于HtmlService的IFRAME沙箱中的限制,我不确定它是否可以完成 – chopz

+0

它绝对可以。我已经使用由GAS创建的AngularJS全功能单页网页应用程序。您可以编写自己的JS,并引用第三方库。 –

回答

3

您正在寻找的可以使用JavaScript在网页上完成,没有必要使用google.script.run与服务器进行任何调用。下面是一个JSfiddle的例子,你可以点击一个下拉列表,并使用JQuery显示一个网站的新部分:https://jsfiddle.net/rorfw6mb/1/

这应该告诉你一个基本的方法,你可以在页面上显示不同的元素用户选择。

var optionsTemplates = { 
 
    'Option 1': '<span>Option 1 selected</span>', 
 
    'Option 2': '<span>Option 2 selected</span>', 
 
    'Option 3': '<span>Option 3 selected</span>', 
 
    'Option 4': '<span>Option 4 selected</span>' 
 
}; 
 

 
$('select').on('change', function(){ 
 
    let value = $(this).val(); 
 
    console.log(value); 
 
    if(value !== ''){ 
 
    $('#option-container').removeClass('hidden'); 
 
    $('#option-container').html(optionsTemplates[value]); 
 
    } else { 
 
    \t $('#option-container').addClass('hidden'); 
 
    } 
 
})
#option-container.hidden { 
 
    display: none; 
 
} 
 

 
#option-container { 
 
    margin: 5px; 
 
    border: 2px solid blue; 
 
    width: auto; 
 
    display:inline; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select> 
 
    <option></option> 
 
    <option value="Option 1">Option 1</option> 
 
    <option value="Option 2">Option 2</option> 
 
    <option value="Option 3">Option 3</option> 
 
    <option value="Option 4">Option 4</option> 
 
</select> 
 

 
<div id="option-container" class="hidden"> 
 
    
 
</div>

+0

尽管此代码可能会导致OP需要的结果,但它仅与切线相关。即响应选择框更改。只是我的意见,但这可能会让一些(副本)混淆。更好地快速找出所需的甚至是伪代码的实际模拟。 – Jonathon

+0

@Jonathon的目标是为OP提供一个关于如何使用模板动态显示页面元素的非常基本的视图。放大模板以包含表单的较大部分不应太困难。如果需要的话,OP可以总是找到一个合适的HTML模板解决方案,如把手,小胡子,或者完全进入角色并开始玩角色。 –

+0

问题是关于通过另一个节点(或多个节点)上的操作来编辑内容,特别是选择一个选项而不是模板。 – Jonathon