0

我将这段代码拼凑在一起,链接到此 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."
});

我知道它有点长,所以我感谢你的阅读。

感谢您的所有时间和投入!

4

1 回答 1

1

你应该写下干净的控制流代码......现在你可以使用它

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"));
}else{
sendMail();
}


var sendMail = function(){
// 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."
});
} 
于 2019-02-19T15:25:53.903 回答