【问题标题】:Prevent hubspot form submission - jQuery validation防止 hubspot 表单提交 - jQuery 验证
【发布时间】:2015-07-17 21:29:34
【问题描述】:

如果表单无效,我想阻止提交,并在可能的情况下打印一些错误消息,这是我目前所拥有的:

btw “链接到当前页面”是在 php 中定义的

hbspt.forms.create({
    css: '',
    portalId: 'hs-portal-id-goes-here',
    formId: 'hs-form-id-goes-here',  
    onFormReady: function(){
        jQuery('#hsForm_hs-form-id-goes-here').validate({
            errorPlacement: function(error, element) {},
            rules: {
                firstname: { required: true },
                lastname: { required: true },
                email: { required: true },
                message: { required: true }
            },
            submitHandler: function(form, e) { 
                e.preventDefault();
                window.open('link to the current page', '_self');
                form.submit();
                jQuery(newForm)
                var newForm = jQuery('#hsForm_hs-form-id-goes-here');
                window.setTimeout(function() {
                    newForm.html('<h3>Thank you for submitting the form</h3>');
                }, 1000);
            }
       });
    }
});         

【问题讨论】:

  • 这对我来说听起来就像普通的客户端验证。您是否收到一些我们可以查看的错误消息?
  • 实际上没有,如果表单无效,hubspot 不会接收数据,但仍然会显示“感谢您提交表单”消息
  • 那你需要写一些客户端验证代码。
  • 同意,我只是想知道是否有必要也包括这个jqueryvalidation.org/files/dist/additional-methods.min.js

标签: javascript jquery forms hubspot


【解决方案1】:

您想要客户端验证还是服务器端验证?

如果答案是客户端,您应该使用 javascript 来完成,检查输入并编写验证消息。

如果是服务器端,您应该考虑使用 ajax,序列化表单,将其发送到服务器,然后根据答案做出反应(数据是否成功验证)

【讨论】:

  • 另外,做两个(前端-后端)验证还是比较好。
  • 此外,表单是从外部页面上的hubspot嵌入的(嵌入js),我实际上想要做的是以模式打开嵌入的表单 - 所以我猜“后端" 或者更好的说法是服务器端验证是不可能的,我只需要 "preventDefault()" 以防表单无效,仅此而已
  • 很抱歉,我根本没有阅读您的问题。我只用简短的评论改进了这个答案。无论如何,您似乎知道该怎么做,所以我不明白问题到底出在哪里。 @达科
  • @kmsdev 没有冒犯伙伴,实际上问题在于验证只工作一次 - 第一次模式正在打开,所以我将整个“hbspt.forms.create”包装到另一个函数中,并且每次打开模态窗口时我都会调用它,就是这样,顺便说一句:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
相关资源
最近更新 更多