首页 > 解决方案 > 从 Javascript 创建填充的电子邮件

问题描述

我想首先说我不知道​​我在用 HTML 和 Javascript 做什么,但我正在努力学习。我正在创建的内容不会由任何服务器托管,它更像是一个 HTML 网络表单(我认为这就是我所说的),供员工填写并创建标准化的电子邮件。我有 97% 的工作,但在最后一部分需要一点帮助。以下是有效的Javascript:

function populateEmail() { 
    
    let bl = document.getElementById("blurb").value;
    let a = document.getElementById("reg").value;
    let b = document.getElementById("lvl").value;
    let c = document.getElementById("node").value;
    let i = document.getElementById("cust").value;

    let d = document.getElementById("rea").value;
    let e = document.getElementById("ma").value;
    let f = document.getElementById("start_dt").value.replace("T", " ");

    let g = document.getElementById("poc").value;
    let h = document.getElementById("appr").value;

    let m_to = "DL-ListOne; DL-ListTwo; DL-ListThree"
    let m_cc = "DL-ListFour; DL-ListFive;"
    
    let today = new Date();
    let dd = String(today.getDate()).padStart(2, '0');
    let mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
    let yyyy = today.getFullYear();
    today = mm + '/' + dd + '/' + yyyy;
    
    let notify = document.getElementById("notify_lvl").value;
    
    if (notify == "Initial"){
        let deap = "Activation ";
    }
    else if (notify == "Update"){
        let deap = "Update ";
    }
    else{
        let deap = "De-Activation ";
    }

    document.location.href = "mailto:" + encodeURIComponent(m_to) + "?cc=" + encodeURIComponent(m_cc)
    + " &subject=DEAP " + encodeURIComponent(b) + ": Any Region " + today
    + " "
    + "&body=" 
    + "%0D%0A%0D%0A"
    + encodeURIComponent(bl) + "%0D%0A%0D%0A"
    + "Name: " + encodeURIComponent(a) + "%0D%0A"
    + "Activation – (" + encodeURIComponent(b)
    + "Current Impact = " + encodeURIComponent(c) + " modules, " + encodeURIComponent(i) + " customers) %0D%0A"
    + "Reason: " + encodeURIComponent(d) + "%0D%0A"
    + "Event Geographical Area: " + encodeURIComponent(e) + "%0D%0A"
    + "Event Start: " + encodeURIComponent(f) + "%0D%0A"
    + "POC: " + encodeURIComponent(g) + "%0D%0A"
    + "Approved by: " + encodeURIComponent(h) + "%0D%0A"

}

现在,当我尝试将变量添加deap到主题行时,它会停止创建电子邮件。这是我尝试添加它的不同方法。

+ " &subject=DEAP " + deap + encodeURIComponent(b) + ": NE Region " + today

+ " &subject=DEAP " + encodeURIComponent(deap) + encodeURIComponent(b) + ": NE Region " + today

然后我想也许我必须在其中添加一些文本或空格才能使其生效所以我尝试 + " " +在变量之后添加deap

我试图将帖子保持在最低限度,如果您需要我看起来难看的 HTML,我会很乐意发布它,但我仍在尝试弄清楚如何div从 Javascript 加载,因此我的代码不会 DRY。

提前感谢您的时间

标签: javascript

解决方案


这是因为您在声明deapif声明:

if ('notify' == "Initial") {
  let deap = "Activation ";
} else if ('notify' == "Update") {
  let deap = "Update ";
} else {
  let deap = "De-Activation ";
}

console.log(deap);

如果你在外面声明它并在你的if块内重新分配它,它应该可以工作:

let deap;

if ('notify' == "Initial") {
  deap = "Activation ";
} else if ('notify' == "Update") {
  deap = "Update ";
} else {
  deap = "De-Activation ";
}

console.log(deap)


推荐阅读