问题
I'm looking on form submit to send an email to the submitter if they filled any of the questions as false, but the script is sending emails to any submitter who entered all true as well. I know the if script works with numbers as I used it in another project but when I changed the question to true false it seems to have broken the if statement. I also know the rest of the script works because it worked before I added the "if (certification == 'FALSE') {" line.
var EMAIL_SENT = 'EMAIL_SENT';
var FALSE = 'FALSE';
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = 20;
var dataRange = sheet.getRange(startRow, 1, numRows, 20);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[4];
var message = 'Test'
var emailSent = row[9];
var certification = row[5]
if (certification == 'FALSE') {
if (emailSent !== EMAIL_SENT) {
var subject = 'Self-Certification Alert';
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
}
}
回答1:
Please try amending to the following:
var EMAIL_SENT = 'EMAIL_SENT';
var FALSE = 'FALSE';
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = 20;
var dataRange = sheet.getRange(startRow, 1, numRows, 20);
var data = dataRange.getValues();
var error=0;
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[4];
var message = 'Test'
var emailSent = row[9];
var certification = row[5]
if (certification == 'FALSE') {
error++;
}
}
if (emailSent !== EMAIL_SENT && error >0) {
var subject = 'Self-Certification Alert';
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
回答2:
I ended up changing it to the following code and got it to work.
enter code here
var EMAIL_SENT = 'EMAIL_SENT';
var TRUE = 'true';
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = 20;
var dataRange = sheet.getRange(startRow, 1, numRows, 20);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[4];
var message = 'Test'
var emailSent = row[9];
var certification = row[5]
if (certification !== true) {
if (emailSent !== EMAIL_SENT) {
var subject = 'Self-Certification Alert';
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
}
}
}
}
来源:https://stackoverflow.com/questions/65378207/trying-to-create-a-script-that-on-form-submit-sends-an-email-to-the-submitter-if