我有一张表格,如果您输入公司名称并且验证正确,它将重定向到公司页面,但是如果拼写错误的公司名称或公司名称不可用,则会显示错误。现在验证工作正常,但表单提交没有停止,它向我显示谢谢消息。
我尝试了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;
});
});
答案 0 :(得分: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;
});