Google apps script 只允许将电子表格中的文本提交到google web应用程序的文本字段中
我正在寻找一种方法,只允许将电子表格中的名称输入谷歌脚本web应用程序。我已经在应用程序上有了一个名为“自动完成”的功能,它允许用户键入一个名称,并在输入下方显示下拉列表,以建议文本字段的可能值。这些名称与我只想输入的名称相同,因此与表单一起提交。现在我已经可以从电子表格中提取名称了,就像我使用自动完成功能那样 比如说Google apps script 只允许将电子表格中的文本提交到google web应用程序的文本字段中,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在寻找一种方法,只允许将电子表格中的名称输入谷歌脚本web应用程序。我已经在应用程序上有了一个名为“自动完成”的功能,它允许用户键入一个名称,并在输入下方显示下拉列表,以建议文本字段的可能值。这些名称与我只想输入的名称相同,因此与表单一起提交。现在我已经可以从电子表格中提取名称了,就像我使用自动完成功能那样 比如说 如果我的电子表格中有Jack和Jill,我如何防止有人将john输入表单?以下是提交的内容: JS: HTML: 这只允许您提交Sheet1第1列中的单词 html: 我认为你应
如果我的电子表格中有Jack和Jill,我如何防止有人将john输入表单?以下是提交的内容: JS: HTML:
这只允许您提交Sheet1第1列中的单词 html:
我认为你应该从阅读@pguardiario开始,因为我有80个学生,所以这对于下拉列表来说太多了,这就是为什么我真的喜欢自动完成功能。这就是自动完成功能
var validOptions = ['John', 'Mary']
var formCallback = function(){
if(validOptions.indexOf($('input#myInput').val()) === -1){
alert('Wrong!')
return false
}
return true
}
<form onsubmit="formCallback()">
<input id="myInput">
</form>
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<form>
<input type="text" id="txt"name="text" oninput="checkWord();" />
<br /><input type="button" id="sub" value="Submit" onClick="saveText(this.parentNode);" disabled />
</form>
<script>
var wA;
$(function(){
google.script.run
.withSuccessHandler(function(obj){
wA=obj;
})
.getWords();
});
function checkWord() {
$('#sub').attr("disabled",true);
var word=$('#txt').val();
//console.log(wA);
if(wA.indexOf(word)!=-1) {
$('#sub').attr('disabled',false);
}
}
function saveText(obj) {
google.script.run.saveWord(obj);
}
</script>
</body>
</html>
function getWords() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('Sheet1');//Sheet1
const rg=sh.getRange(1,1,sh.getLastRow(),1);//column1
const vs=rg.getValues().map(function(r){return r[0];});
return vs;
}
function saveWord(obj) {
SpreadsheetApp.getActive().toast(obj.text);
}
//Using a dialog instead of a webapp
function showMyDialog() {
SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutputFromFile('ah1'), 'Submit Dialog');
}