Как и где мне объединить эти две переменные в JavaScript? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть этот код, который я собрал, связанный с кнопкой действия в этом 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."
});

Я знаю, что это немного долго, поэтому я ценю вас зачтение.

Спасибо за все ваше время и вклад!

1 Ответ

0 голосов
/ 19 февраля 2019

Вы должны записать код чистого потока управления ... сейчас вы можете использовать это

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."
});
} 
...