2

我正在为工作的内部工作提交设计一个新流程,该流程现在涉及 javascript 以使其有效工作。

脚本不是我的强项,但这并没有阻止我,我已经能够找到三段不同的代码插入到各种按钮和字段中,并且他们已经完成了他们应该做的事情。我的问题是我需要将其中的一些结合起来,以便在提交时进行额外验证。这就是我的不足之处。

过程:

  1. 表单中有一个必填字段,当前运行自定义验证脚本以检查特定于作业所需代码的特定格式。这运行良好,我什至能够添加警报和提示图像,当不正确时显示,正确时显示小勾。美丽的。

  2. 表单的第二个主要部分是提交按钮。我编写了一个代码,它不仅通过电子邮件将提交的表单以字段作为主题行,而且在这样做之前使所有字段只读。杰出的。

这是混乱的部分。用户可以输入正确或不正确的所需代码,验证器会尽其所能,但这并不能阻止他们仍然提交表单。美好的。我可以通过在提交按钮上再次运行验证器来解决这个问题,这样它不仅可以向用户提供有关必填字段模糊的反馈,还可以在提交时再次验证,因此如果该字段不正确,则提交停止,直到用户在该字段中具有正确的值. 这就是我的知识像悬崖边缘一样停止的地方,我似乎无法建造一座桥梁。我尝试了多种调用字段值的方法,然后只使用一些ifelse语句运行相同的验证脚本,但它不起作用。

任何人都可以帮忙吗?下面是提交按钮的当前代码,但请记住,此代码的验证部分也直接附加到必填字段(这会影响它吗?):

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();
      }
4

0 回答 0