我想要一个Listbox或类似的用户可以开始输入,而Listbox会根据已经输入的内容缩小选择范围,并在达到唯一选项后自动完成
答案 0 :(得分:4)
在HtmlService中相当容易,虽然可行但在UiApp中有点难度。这是一个HtmlService示例:
代码文件
function getGroup(group) {
return GroupsApp.getGroupByEmail(group).getUsers().map(
function(user){return user.getEmail(); });
}
function doGet() {
return HtmlService.createHtmlOutputFromFile("ui");
}
名为'ui'
的Html文件<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script>
function refresh() {
google.script.run.withSuccessHandler(function(tags) {$( "#tags" ).autocomplete({source: tags});})
.getGroup(document.getElementById('group').value);
}
</script>
Enter a group name in the first box. The second box will autocomplete
group members using GroupApp.
<br>
<label for="group">Group: </label>
<input id="group" onchange='refresh()'>
<div class="ui-widget">
<label for="tags">Members: </label>
<input id="tags">
</div>
</html>
答案 1 :(得分:2)
有关自动填充的示例,请参阅http://googleappsdeveloper.blogspot.in/2011/05/autocomplete-email-addresses-in-apps.html
答案 2 :(得分:1)
[编辑] HtmlService更快,更先进。 UiApp可以工作,但由于网络的原因很慢。
此处的 HtmlService 解决方案Populate jQuery autocomplete list using value array from Google Spreadsheet要好得多。
或者我建立的这种方式:
要查看它的实际效果,请输入机场名称: http://www.treesforlife.org.au/carbon-calculator
但这是通过电子表格公式完成的,而不是google-apps-script。见http://www.cellmaster.com.au