我正在努力尝试在某人没有输入值的情况下做一些错误提示。在这种情况下,我检查值是否为空,并最终检查它是否为日期。
所以当这里失败时。
1)运行if语句,如果值为true,则使用字符串参数
运行错误提示if (sheetData[4] === ""){
errorPrompt("Title");
}
2)使用字符串参数运行以下函数。然后我希望函数将参数传递给html iframe。
function to open dialog
function errorPrompt(missvar) {
var missVar = "test";
var html = HtmlService.createHtmlOutputFromFile('missingvar')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(html, missVar + ' is Missing please provide ' + missVar + " and try again.");
}
3)然后该变量应传递给html文件,该文件显示为模态对话框。如果字符串等于"标题",则对话框应显示为:" 标题缺失。请输入标题,然后重试。"
missingvar.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<script>
UI.getElementById("missVar").innerHTML;
</script>
The <var id=missVar></var> is missing. Please enter <var id=missVar></var> and try again.
<input type="button" value="Close"
onclick="google.script.host.close()" />
</body>
</html>
上面的HTML显示,但missVar没有显示。有人有什么想法?请注意,对话框的标题栏正确显示变量,但这不在html之外。
答案 0 :(得分:2)
如果您想要执行您所描述的操作,请使用HtmlService
模板。它删除了客户端上的JS,并提供完整形成的对话框,missVar
完好无损。
var html = HtmlService.createTemplateFromFile(missingVar);
html.missingVar = missVar;
var htmlOutput = html.evaluate();
您的missingvar.html
文件将包含
<?= missingVar ?>
您希望显示该变量的任何位置。
答案 1 :(得分:0)
我改变了提示的创建方式。不再需要html文件,因为js会动态创建它。
发件人强>
function errorPrompt(missvar) {
var missVar = "test";
var html = HtmlService.createHtmlOutputFromFile('missingvar')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(html, missVar + ' is Missing please provide ' + missVar + " and try again.");
}
要强>
function errorPrompt(missvar) {
var missVar = "test";
var htmlOutput = HtmlService
.createHtmlOutput('<p>' + missVar + ' is missing, please enter a ' + missVar + ' and try again.</p>')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(250)
.setHeight(300);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, missVar + ' is missing. Please provide a ' + missVar + ' and try again.');
}