如果验证失败,如何阻止Hubspot表单提交

时间:2020-08-26 11:13:28

标签: jquery hubspot

这是表单嵌入代码。

<script>
    hbspt.forms.create({

    portalId: "XXXXXXX",
    formId: "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
     translations: {
          en: {
            required: " ",
            missingSelect: " "
          }
     },


     onFormReady: function() {
      let fpwd = document.getElementById("set_password");
            if (fpwd.type !== "password") {
                fpwd.type = "password";
            }

      let fpwd2 = document.getElementById("confirm_password");
            if (fpwd2.type !== "password") {
                fpwd2.type = "password";
            }

      var email = $("#email-e1a8a5cf-09b6-45b9-9ae1-f73aa13e0ef1").val();
      $.validator.addMethod(
          "uniqueEmail",
          function(value, element) {
            $.ajax({
               url: 'https://xxx.xxxxxx.com/rest/v1/portal/usertrial/' + email,
                    type: "POST",
                     cache: true,
                     async: true,
                     headers: {
                           'Content-Type': 'application/json',
                           'XXXXHeader_1': 'Yes',
                            'x-access-token': 'xxxFromWebsite' 
                            },
                              success: function(msg)
                                  {
                                     //If email exists, set response to true
                                     response = ( msg == 'true' ) ? true : false;
                                  }
                               });
                              return response;
                          },
                          "Email is already taken"
                      );

                       $('#hsForm').validate({
                            rules: {
                              firstname: "required",
                              lastname: "required",
                              phone: "required",
                              company: "required",
                              set_password: {
                                  minlength : 8
                              },
                              confirm_password : {
                                  minlength : 8,
                                  equalTo : "#set_password"
                              },
                              email: {
                                 required: true,
                                 uniqueEmail: true
                              },
                              i_am: "required"

                            },
                            messages: {
                                email: {
                                  required: "Valid email required",
                                  uniqueEmail: "Email is taken already"
                                }
                            }
                        });

              }
         });
      </script>

我的电子邮件字段有问题,有时我会收到“电子邮件已被占用”消息,但表单仍会提交。

第二个问题是,如果我在不提交电子邮件的情况下更改了电子邮件,则会出现此错误

    jquery.validate.js:825 Uncaught ReferenceError: response is not defined
        at $.validator.<anonymous> (remote-support-software:634)
        at $.validator.check (jquery.validate.js:798)
        at $.validator.element (jquery.validate.js:509)
        at $.validator.onfocusout (jquery.validate.js:309)
        at HTMLInputElement.delegate (jquery.validate.js:440)
        at HTMLFormElement.dispatch (app.js:1)
        at HTMLFormElement.g.handle (app.js:1)
        at Object.trigger (app.js:1)
        at Object.simulate (app.js:1)
        at HTMLDocument.n (app.js:1)

请帮忙。

0 个答案:

没有答案
相关问题