我有一个表格,如果您输入公司名称并且验证正确,它将重定向到公司页面,但如果拼写错误的公司名称或公司名称不可用,则会显示错误。现在验证工作正常,但表单提交没有停止,它向我显示感谢消息。
我尝试了 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;
});
});
最佳答案
您必须在提交表单后禁用表单上的提交事件。在您的代码 $(".sidebar-form form").submit(function(e)
中,您将自动提交表单。您可以使用 on submit 或尝试在函数中添加条件。例如:
有条件:
$(".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;
});
关于javascript - 如何停止在 hubspot 上提交表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52534381/