我有一个用HTML定义的表单,可以使用提交按钮提交。
我还有一个jquery处理程序,其中有一个非现有对象的记录器。
$("#myform").submit(function() {
console.log(nosuchobject);
return false;
});
使用记录器,提交表单并更改浏览器页面。但是没有记录器,表单就不会提交。
我的猜测是,当记录器中出现错误时,返回的值不是false。但这是真的吗?为什么错误允许提交表单呢?
答案 0 :(得分:2)
在您的记录器代码中,您打印的是变量而不是字符串。只需使用以下内容更新您的代码
$("#myform").submit(function() {
console.log('nosuchobject');
return false;
});
答案 1 :(得分:1)
使用preventDefault
来阻止表单提交:
$("#myform").submit(function(e) {
e.preventDefault();
});
答案 2 :(得分:0)
如果在submit函数中遇到js错误,则错误后的代码将不会被执行,这意味着它不会返回false。您可以在功能开始时阻止表单提交,如下所示:
$("#myform").submit(function(event) {
event.preventDefault();
// it does not matter if there is an error now.
console.log(nosuchobject);
});
您仍然应该编写代码,以便它可以正常运行。