我将这段代码拼凑在一起,链接到此 PDF 中的操作按钮。它应该验证是否输入了所有必填字段,如果是,它将从文档中提取姓名和员工编号,并生成附有 PDF 的电子邮件。如果它未能通过这些检查,则会弹出一个警告用户丢失信息的窗口。
我遇到的问题是,当代码运行时,您可以绕过警告并仍然通过电子邮件发送文档。
我如何调整它以停止,直到所有字段都得到回答?
所需的“伪代码”:检查空字段(获取经理的姓名)(获取经理的 EE 编号)。如果必填字段(复选框)和注释为空,请提醒用户。如果它很好,请从这些区域构建电子邮件主题行和文本......
这是它的代码:
var emptyFields = [];
for (var i = 0; i < this.numFields; i++) {
var f = this.getField(this.getNthFieldName(i));
if (f.type != "button" && f.required) {
if ((f.type == "text" && f.value == "") || (f.type == "checkbox" && f.value == "Off")) emptyFields.push(f.name);
}
}
if (emptyFields.length > 0) {
app.alert("Error! This checklist is incomplete:\n" + emptyFields.join("\n"));
}
// Build the subject line text from several fields form fields
var subj_text = getField("Weekly Management Critical Items:").valueAsString;
subj_text += ": " + getField("Manager Name").value;
subj_text += "- " + getField("Manager EE#").valueAsString;
// Send the email
mailDoc({
cTo: "dennis.aikens@fedex.com",
cSubject: subj_text,
cMsg: "Hey Dennis, here's my checklist for this week. \r" + "Let me know if you have any questions. Thank you."
});
我知道它有点长,所以我感谢你的阅读。
感谢您的所有时间和投入!