Как остановить отправку формы на hubspot? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть форма, из которой, если вы введете название компании и проверка правильна, она будет перенаправлена ​​на страницу компании, но если название компании с ошибкой или название компании не доступно, то это показывает ошибку.Теперь проверка работает нормально, но отправка формы не прекращается, и это показывает мне сообщение спасибо.

Я пробовал return false & также e.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;
    });
});

1 Ответ

0 голосов
/ 27 сентября 2018

Вы должны отключить событие отправки в форме после того, как оно уже было отправлено.В вашем коде $(".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;
});
...