【发布时间】:2017-09-12 17:39:11
【问题描述】:
您好,我研究了很多方法,了解如何在日期输入字段中使用当前日期预先填写谷歌表单。
我想出的最好方法是创建一个预填表单并使用预填谷歌表单 url 并动态更改 url 字符串以插入当前日期作为参数之一。
我尝试使用链接引用创建一个页面(谷歌应用程序脚本),我试图将链接 href 设置为包含当前日期参数但没有成功的新字符串。我已经有一个函数(在 code.gs 中),它采用 google 表单 url 并正确操作它以在 url 字符串中输入当前日期作为参数之一。但是在链接href中设置这个新的url字符串不起作用。
您能否就此提供建议(示例很好),或者以更简单的方式在 Google 表单上预填当前日期。 最受赞赏的。
/* NOTE!!! Make a copy of this file - Choose "File" "Make a copy..."
* Then publish this as a Web App -
* To Publish Choose the menu item "Publish" then "Deploy as Web App"
* to see the Web App click the link named - "Test web app for your latest code"
*
*/
var EXAMPLE_OF_GLOBAL_VARIABLE;//Use all capital letters so that you know it is a global
var n3;
function doGet() {
var template = HtmlService.createTemplateFromFile('Index');
// Build and return HTML in IFRAME sandbox mode.
return template.evaluate()
.setTitle('Web App Window Title')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
};
//Attribute - This code is modified from the Google Help for a web app
//Help - Welcome Screen - Web App
function getFolderContents() {
var contents,file,files,folderId,numFiles,topFolder;
folderId = 'root'; //Set this as the default for an example
topFolder;
contents = {
children: []
};
if (folderId == 'root') {
topFolder = DriveApp.getRootFolder();
} else {
// May throw exception if the folderId is invalid or app
// doesn't have permission to access.
topFolder = DriveApp.getFolderById(folderId);
}
contents.rootName = topFolder.getName() + '/';
files = topFolder.getFiles();
numFiles = 0;
while (files.hasNext() && numFiles < 20) {
file = files.next();
contents.children.push(file.getName());
numFiles++;
};
return contents;
};
function getnowx() {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd = '0'+dd
} ;
if(mm<10) {
mm = '0'+mm
};
today = yyyy + '-' + mm + '-' + dd;
var n ='https://docs.google.com/forms/d/e/1FAIpQLSd5By6kDoO_T4WZWk5VjKs6WD5RVuC_06RX7jDv19jS-KR8sg/viewform?usp=pp_url&entry.1374707830=xxxx-xx-xx&entry.406706983&entry.1232084117&entry.769389513&entry.104847992';
var n1 = n.replace("xxxx-xx-xx",today);
return n1;
};
我的 javascript 部分
<script>
function updateDisplay(contents) {
var headingText = "Displaying contents for " + contents.rootName + "
folder:";
document.getElementById('main-heading').textContent = headingText;
for (var i = 0; i < contents.children.length; i++) {
var name = contents.children[i];
document.getElementById('results').insertAdjacentHTML('beforeend', '<div>'
+ name + '</div>');
}
function updateDisplay2(n5) {
var linkButton = document.getElementById("link-button");
linkButton.setAttribute('href', n5);
document.getElementById('link-button').textContent = linkText;
}
window.getTheData = function() {
google.script.run
.withSuccessHandler(updateDisplay)
.getFolderContents();
};
window.getnowx2 = function() {
google.script.run
.withSuccessHandler(updateDisplay2)
.getnowx();
}
</script>
【问题讨论】:
-
您能否提供
url以及code.gs的快照 -
我复制了一段网上的代码,修改了一下。
-
我如何向这个论坛添加快照?
-
尝试在此处添加,但文本错误太长
-
编辑问题以添加它
标签: javascript date google-apps-script web-applications google-forms