【发布时间】:2017-04-22 04:48:54
【问题描述】:
我正在尝试使用以下 sn-ps 的 EmailJS.com 服务: HTML部分:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Daily Report</title>
<script src="https://cdn.emailjs.com/dist/email.min.js"></script>
<script src="tst.js"></script>
<noscript>Please enable JavaScript.</noscript>
</head>
<body onLoad="today()">
<h1 id="today"></h1>
<hr>
<form onSubmit="draft()">
<fieldset>
<legend>Message</legend>
<textarea id="shout" rows="2" cols="97">TEST.</textarea><br>
<input type="submit" value="Email">
</fieldset>
</form>
</body>
</html>
JavaScript 部分:
var s = new Date().toDateString();
function today() {
emailjs.init("EMAILJSASSIGNED");
document.getElementById("today").innerHTML = s;
}
function draft() {
var m = s + "<br>";
m += document.getElementById("shout").value + "<br>";
emailjs.send("EMAILJS_service", "TEMPLATE", {"body":m});
//alert(m);
}
我发现只有添加alert(m) 行时,代码才有效(即根据我的模板规范通过电子邮件发送)。似乎alert 触发了提交事件以执行 emailjs.send()。如果没有警报, emailjs.send 将被“跳过”。我不明白为什么。
【问题讨论】:
-
您可以尝试使用 Promise 来了解成功或错误响应吗?
-
不熟悉承诺功能。在这种情况下,我需要同步管道:提交表单,然后发送电子邮件。
-
您的控制台有错误吗?
-
没有。当然,有了 alert,textarea 的内容就会显示出来。
标签: javascript html forms email