我正在为工作的内部工作提交设计一个新流程,该流程现在涉及 javascript 以使其有效工作。
脚本不是我的强项,但这并没有阻止我,我已经能够找到三段不同的代码插入到各种按钮和字段中,并且他们已经完成了他们应该做的事情。我的问题是我需要将其中的一些结合起来,以便在提交时进行额外验证。这就是我的不足之处。
过程:
表单中有一个必填字段,当前运行自定义验证脚本以检查特定于作业所需代码的特定格式。这运行良好,我什至能够添加警报和提示图像,当不正确时显示,正确时显示小勾。美丽的。
表单的第二个主要部分是提交按钮。我编写了一个代码,它不仅通过电子邮件将提交的表单以字段作为主题行,而且在这样做之前使所有字段只读。杰出的。
这是混乱的部分。用户可以输入正确或不正确的所需代码,验证器会尽其所能,但这并不能阻止他们仍然提交表单。美好的。我可以通过在提交按钮上再次运行验证器来解决这个问题,这样它不仅可以向用户提供有关必填字段模糊的反馈,还可以在提交时再次验证,因此如果该字段不正确,则提交停止,直到用户在该字段中具有正确的值. 这就是我的知识像悬崖边缘一样停止的地方,我似乎无法建造一座桥梁。我尝试了多种调用字段值的方法,然后只使用一些if和else语句运行相同的验证脚本,但它不起作用。
任何人都可以帮忙吗?下面是提交按钮的当前代码,但请记住,此代码的验证部分也直接附加到必填字段(这会影响它吗?):
function OR_Stuff() {
var ProjectTitle = getField("ProjectTitle").value;
var Brand = getField("Brand").value;
var Name = getField("Name").value;
var Noosh = getField("INT_NooshCode").value;
for (var i = 0 ; i < this.numFields ; i++) {
var f = this.getField(this.getNthFieldName(i));
if (f.type != "Submit") // Change f.type to button name in form that the action is applied to
{
f.readonly = true;
}
}
this.mailDoc({
cTo: "email",
cBcc: "email",
cSubject: "NEW JOB: "+Brand+" - "+ProjectTitle+" - "+Noosh,
cMsg: "Thanks "+Name+" for sending through this job."
});
}
var re = /^\d{5}[A-Z]\d{2}$/
if (re.test(INT_NooshCode.value) == false) {
this.getField("RequiredAlert").display = display.visible;
this.getField("NooshTick").display = display.hidden;
app.alert("Sorry, we can't start a project without a Noosh code. \n\nPlease enter a valid Noosh code EG: 34256P02");
}
else {
OR_Stuff();
}