【问题标题】:How to stop form submission on hubspot?如何停止在 hubspot 上提交表单?
【发布时间】:2018-09-27 09:59:57
【问题描述】:

我有一个表格,如果您输入公司名称并且验证正确,那么它将重定向到公司页面,但如果拼写错误的公司名称或公司名称不可用,则显示错误。现在验证工作正常,但表单提交并没有停止,它向我显示感谢信息。

我尝试了return falsee.preventDefault();,但它们都没有工作。表单通过ajax提交数据。

这里是 JS 代码

$(window).load(function() {
    var gett;
    var op_value = [];
    var op_urls = [];
    var op_spell = [];
    $(".hs_company input").keyup(function() {
        gett = $(this).val().replace(/\s/g, '');
        $('.sidebar-form input[type=hidden]').val(gett).change();
    });

    $(".sidebar-form form").on("submit", function(e) {
        e.preventDefault();
        $('.hs_company_list option').each(function() {
            op_spell.push($(this).text().substring(0, 3));
            op_value.push($(this).text().replace(/\s/g, ''));
            op_urls.push($(this).val());
        });
        var sliced_str = gett.substring(0, 3);
        if ($.inArray(gett, op_value) !== -1) {
            var op_data = $.inArray(gett, op_value);

            setInterval(function() {
                window.location.href = op_urls[op_data];
            }, 2000);
            return false;
        } else if ($.inArray(sliced_str, op_spell) > -1) {

            $(".sidebar-form .hs-button").before("<label>Misspelled Company Name<label>");

            return false;
        } else {

            $(".sidebar-form .hs-button").before("<label>Company Not Found<label>");

            return false;
        }
        return false;
    });
});

【问题讨论】:

  • 你必须写一个条件进行验证然后重置和 .preventDefault();
  • @MerajKhan 我已经在代码中添加了验证,看看if-else 条件但是如何重置.preventDefault()??
  • 您找到解决方案了吗?

标签: javascript jquery hubspot


【解决方案1】:

您必须在表单提交后禁用提交事件。在您的代码$(".sidebar-form form").submit(function(e) 中,您将自动提交表单。您可以在提交时使用或尝试在您的函数中添加条件。例如:

有条件:

$(".sidebar-form form").submit(function () {

    var form = $(".sidebar-form form");

    if (form.validate() === true) {
        $(this).submit(function () {
            return false;
        });
        return true;
    }
    else {
        return false;
    }
});

或在提交时:

$(".sidebar-form form").on("submit", "form", function() {
$(this).submit(function() {
    return false;
});
return true;
});

【讨论】:

  • 您好 Dev65,使用 jquery 插件 validate() 编辑了答案。
  • 我刚刚按照您的建议更新了代码,但仍然没有运气:(例如activenation这是公司名称,那么这一定不能不正确
  • 验证插件仅检查默认表单验证,如电话号码、电子邮件等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 2019-07-09
  • 2021-07-18
相关资源
最近更新 更多