提交PDF的自定义验证脚本 - 无法使其正常工作

时间:2013-08-11 00:44:04

标签: javascript forms validation pdf interactive

我正在设计一个内部作业提交工作的新流程,现在需要使用javascript才能有效地工作。

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

流程:

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

  2. 表单的第二个主要部分位于提交按钮中。我把一个代码整理在一起,这个代码不仅通过电子邮件将提交的表单作为主题行的字段发送,而且在执行此操作之前还使所有字段都被读取。辉煌。

  3. 这是一个混乱的部分。用户可以输入正确或不正确的必需代码,验证器可以做到这一点,但这并不能阻止他们仍然提交表单。精细。我可以通过在提交按钮上再次运行验证器来解决这个问题,这样它不仅可以提供用户对所需字段的模糊的反馈,还可以在提交时进行验证,这样如果字段不正确,则提交将停止直到用户在该字段中具有正确的值。这就是我的知识停留在悬崖边缘的地方,我似乎无法建立一座桥梁。 我已经尝试了多种调用字段值的方法,然后只使用一些 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();
          }
    

0 个答案:

没有答案