我在邮件正文中发送一个html表单,其中包含一个按钮,当点击按钮时,我将在Google电子表格中保存一个引用。我能够获得代码并且无法使其工作。请帮助我解决问题。
//Function to send mail from Google App script
function sendmail(e) {
var subject = 'Test';
var template = HtmlService.createHtmlOutput('<form id = "myForm" >' +
'<label for = "name"> Name: </label>'+
'<input type = "text" id ="name" />'+
'</Form>'+
'<button onclick = "submitdata()">Save</button>' +
'<script>' +
'function submitdata(){'+
'var form = document.getElementByID('+"myform"+');'+
'google.script.run.withFailureHandler(alert).withSuccessHandler(alert).' +
'submitForm(form);'+
'}');
var html = template.getContent();
// email to self
recipient = Session.getActiveUser().getEmail();
var Mailbody= 'Its a test: '
// Send email form
GmailApp.sendEmail(recipient, subject, Mailbody, {htmlBody:html} );
}
//Function to be called when clicked on Save button in Email body
function submitForm(form) {
var ss =SpreadsheetApp.openById('tsgxsbtJRf2zbh_tNQzJoUQ');
var sheet = ss.getSheets()[0];
// Save response to spreadsheet
var rowNum = sheet.getLastRow()+1;
//sheet.getRange(rowNum, 1, 1, row.length).setValues([row]);
sheet.getRange("A"+ rowNum).setValue("today" )
}
答案 0 :(得分:0)
我所知道的传统(例如Outlook)或在线(例如gmail)的电子邮件客户端都不会运行嵌入在html中的javascript代码。
某些客户的工作是使表单具有常规的帖子URL,这样当用户填写字段并单击“提交”按钮时,它会在浏览器上直接触发表单的新选项卡。但话说回来,这只适用于某些电子邮件客户端。例如,我认为这不适用于Outlook。
在这种情况下,您可以做的最好的事情是发送链接,以便用户可以在线打开我们的表单。