我将如何以及在哪里将这两个变量组合在 JavaScript 中?
Posted
技术标签:
【中文标题】我将如何以及在哪里将这两个变量组合在 JavaScript 中?【英文标题】:How and where would I combine these two variable in JavaScript? 【发布时间】:2019-02-19 15:15:56 【问题描述】:我将这段代码拼凑在一起,链接到此 PDF 中的操作按钮。它应该验证是否输入了所有必填字段,如果是,它将从文档中提取姓名和员工编号,并生成附有 PDF 的电子邮件。如果它未能通过这些检查,则会弹出一个警告用户丢失信息的窗口。
我遇到的问题是,当代码运行时,您可以绕过警告并仍然通过电子邮件发送文档。
如何调整它以停止直到所有字段都被回答?
所需的“伪代码”: 检查空字段(获取经理的姓名)(获取经理的 EE 编号)。如果必填字段(复选框)和 cmets 为空,则提醒用户。 如果不错,请从这些区域构建电子邮件主题行和文本...
代码如下:
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."
);
我知道它有点长,所以感谢您阅读。
感谢您的所有时间和投入!
【问题讨论】:
这是伪代码还是你真的没有流控制语句来阻止mailDoc
函数被调用,即使emptyFields.length > 0
?换句话说,如果将所有代码放在else
子句中的警报if
语句下方会发生什么?
如果所有这些代码都包含在一个函数中,那么在if (emptyFields.length > 0)
之后的块中,只需键入return;
尝试添加else /* code block that should not always be executed */
或者您在 javascript 验证结束时使用 return false;
/ return true;
设置条件,然后根据清单运行到此处或此处 - 或者您清理 html 表单的 @ 987654331@方法并在满足要求后通过javascript发布。
-尼克,是的,第一部分是伪代码;或者至少我理解它是什么。我没有流量控制语句,也不知道该放在哪里。
【参考方案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."
);
【讨论】:
以上是关于我将如何以及在哪里将这两个变量组合在 JavaScript 中?的主要内容,如果未能解决你的问题,请参考以下文章